[PATCH] [x86] Fix ICE due to condition mismatch between expander and define_insn.

2022-12-06 Thread liuhongt via Gcc-patches
ice.i:7:1: error: unrecognizable insn: 7 | } | ^ (insn 7 6 8 2 (set (reg:V2SF 84 [ vect__3.8 ]) (unspec:V2SF [ (reg:V2SF 86 [ vect__1.7 ]) (const_int 11 [0xb]) ] UNSPEC_ROUND)) "ice.i":5:14 -1 (nil)) during RTL pass: vregs Bootstra

[committed] libgomp.texi: Fix a OpenMP 5.2 and a TR11 impl-status item

2022-12-06 Thread Tobias Burnus
Found when updating the wwwdocs files. Committed as obvious as https://gcc.gnu.org/r13-4500 Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sit

[wwwdocs] gcc-13/changes.html + projects/gomp: OpenMP GCC 13 update

2022-12-06 Thread Tobias Burnus
This patch updates the OpenMP implementation status, based on libgomp.texi. For the release notes, it also moves 'non-rectangular loop nests' up as that's a 5.0 not a 5.1 feature. And in line with libgomp.texi, it adds to projects/gomp/ the items for TR11, a OpenMP 6.0 preview. (Hence, the id="omp

[PATCH v2 0/1] RISC-V: Optimze the reverse conditions of rotate shift

2022-12-06 Thread Feng Wang
The first patch is https://gcc.gnu.org/pipermail/gcc-patches/2022-November/607332.html. Accroding to Jeff's suggestion I added some conditions when reverse the rotate shift during RTL expansion and RTL optimization. wangfeng (1): RISC-V: Optimze the reverse conditions of rotate shift gcc/conf

[PATCH v2 1/1] RISC-V: Optimze the reverse conditions of rotate shift

2022-12-06 Thread Feng Wang
From: wangfeng There is no Immediate operand of ins "rol" according to the B-ext, so the immediate operand should be loaded into register at first. But we can convert it to the ins "rori" or "roriw", and then one immediate load ins can be reduced. So I added some conditions when reverse the rotat

Re: [wwwdocs] gcc-13/changes.html + projects/gomp: OpenMP GCC 13 update

2022-12-06 Thread Jakub Jelinek via Gcc-patches
On Tue, Dec 06, 2022 at 09:59:17AM +0100, Tobias Burnus wrote: > This patch updates the OpenMP implementation status, based on libgomp.texi. > For the release notes, it also moves 'non-rectangular loop nests' up as that's > a 5.0 not a 5.1 feature. > And in line with libgomp.texi, it adds to projec

Re: [PATCH v2] Add pattern to convert vector shift + bitwise and + multiply to vector compare in some cases.

2022-12-06 Thread Manolis Tsamis
On Wed, Nov 30, 2022 at 9:44 AM Richard Biener wrote: > > On Tue, Nov 29, 2022 at 11:05 AM Manolis Tsamis > wrote: > > > > When using SWAR (SIMD in a register) techniques a comparison operation > > within > > such a register can be made by using a combination of shifts, bitwise and > > and > >

Re: [wwwdocs] gcc-13/changes.html + projects/gomp: OpenMP GCC 13 update

2022-12-06 Thread Tobias Burnus
On 06.12.22 10:15, Jakub Jelinek wrote: On Tue, Dec 06, 2022 at 09:59:17AM +0100, Tobias Burnus wrote: This patch updates the OpenMP implementation status, based on libgomp.texi. For the release notes, it also moves 'non-rectangular loop nests' up as that's a 5.0 not a 5.1 feature. And in line w

Re: [PATCH] Add a new conversion for conditional ternary set into ifcvt [PR106536]

2022-12-06 Thread Richard Sandiford via Gcc-patches
Richard Biener via Gcc-patches writes: > On Thu, Nov 24, 2022 at 8:25 AM HAO CHEN GUI wrote: >> >> Hi Richard, >> >> >> 在 2022/11/24 4:06, Richard Biener 写道: >> > Wouldn't we usually either add an optab or try to recog a canonical >> > RTL form instead of adding a new target hook for things like

Re: [PATCH 1/3] Rework 128-bit complex multiply and divide, PR target/107299

2022-12-06 Thread Kewen.Lin via Gcc-patches
Hi Mike, Thanks for fixing this! on 2022/11/2 10:40, Michael Meissner wrote: > This function reworks how the complex multiply and divide built-in functions > are > done. Previously we created built-in declarations for doing long double > complex > multiply and divide when long double is IEEE 1

Re: [wwwdocs] gcc-13/changes.html + projects/gomp: OpenMP GCC 13 update

2022-12-06 Thread Jakub Jelinek via Gcc-patches
On Tue, Dec 06, 2022 at 10:32:40AM +0100, Tobias Burnus wrote: > + omp_get_mapped_ptr API routines. The assume and assumes assume and assumes please > + directives, the begin/end declare target syntax in C/C++ > + and device-specific ICV settings with environment variables are now

[PATCH] tree-optimization/104475 - improve access diagnostics

2022-12-06 Thread Richard Biener via Gcc-patches
When we end up isolating a nullptr path it happens we diagnose accesses to offsetted nullptr objects. The current diagnostics have no good indication that this happens so the following records the fact that our heuristic detected a nullptr based access in the access_ref structure and sets up diagn

Zen4 tuning part 1 - cost tables

2022-12-06 Thread Jan Hubicka via Gcc-patches
Hi this patch updates cost of znver4 mostly based on data measued by Agner Fog. Compared to previous generations x87 became bit slower which is probably not big deal (and we have minimal benchmarking coverage for it). One interesting improvement is reducation of FMA cost. I also updated costs of

Re: [PATCH] tree-optimization/104475 - improve access diagnostics

2022-12-06 Thread Jakub Jelinek via Gcc-patches
On Tue, Dec 06, 2022 at 10:50:20AM +0100, Richard Biener wrote: > When we end up isolating a nullptr path it happens we diagnose > accesses to offsetted nullptr objects. The current diagnostics > have no good indication that this happens so the following records > the fact that our heuristic detec

Rust front-end patches v4

2022-12-06 Thread arthur . cohen
This patchset contains the fixed version of our most recent patchset. We have fixed most of the issues noted in the previous round of reviews, and are keeping some for later as they would otherwise create too many conflicts with our updated development branch. Similarly to the previous round of pa

[PATCH Rust front-end v4 01/46] Use DW_ATE_UTF for the Rust 'char' type

2022-12-06 Thread arthur . cohen
From: Tom Tromey The Rust 'char' type should use the DWARF DW_ATE_UTF encoding. Co-authored-by: Mark Wielaard Co-authored-by: Marc Poulhiès --- gcc/dwarf2out.cc | 19 ++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index e3

[PATCH Rust front-end v4 03/46] gccrs: Add Debug info testsuite

2022-12-06 Thread arthur . cohen
From: Philip Herron This testsuite is specifically about testcases which scan the asm debug info for results. Co-authored-by: Tom Tromey Co-authored-by: Mark Wielaard Co-authored-by: Marc Poulhiès --- gcc/testsuite/rust/debug/chartype.rs | 10 ++ .../rust/debug/custom_link_secti

[PATCH Rust front-end v4 02/46] gccrs: Add necessary hooks for a Rust front-end testsuite

2022-12-06 Thread arthur . cohen
From: Philip Herron This copies over code from other front-end testsuites to enable testing for the rust front-end specifically. Co-authored-by: Marc Poulhiès Co-authored-by: Thomas Schwinge --- gcc/testsuite/lib/rust-dg.exp | 49 + gcc/testsuite/lib/rust.exp| 186 +++

[PATCH Rust front-end v4 04/46] gccrs: Add link cases testsuite

2022-12-06 Thread arthur . cohen
From: Philip Herron This testsuite is heavily inspired from the LTO testsuite that uses a pattern where each file is compiled to an object file and finally linked together. Since Rust does not have headers/prototypes, we rely on the ordering here so that all files numbered greater than zero get c

[PATCH Rust front-end v4 06/46] gccrs: Add execution test cases

2022-12-06 Thread arthur . cohen
From: Philip Herron This is similar to the compile/torture/*.rs test cases, but all of these are dg-execute testcases. They are compiled, linked and executed by default. These testcases are also compiled with the matrix of torture options. The only caveat here is that gccrs does not currently su

[PATCH Rust front-end v4 07/46] gccrs: Add gcc-check-target check-rust

2022-12-06 Thread arthur . cohen
From: Philip Herron This allows us to invoke the rust testsuite. ChangeLog: * Makefile.def: Add Rust language. * Makefile.in: Regenerate via autogen. --- Makefile.def | 1 + Makefile.in | 8 2 files changed, 9 insertions(+) diff --git a/Makefile.def b/Makefile.def ind

[PATCH Rust front-end v4 11/46] gccrs: Add Rust AST visitors

2022-12-06 Thread arthur . cohen
From: The Other This patch contains the basic framework of our AST visitors, as well as one aimed at pretty-printing and exporting these AST nodes. Co-authored-by: Philip Herron Co-authored-by: Arthur Cohen --- gcc/rust/ast/rust-ast-dump.cc| 1089 ++ gcc/rust/a

[PATCH Rust front-end v4 12/46] gccrs: Add Lexer for Rust front-end

2022-12-06 Thread arthur . cohen
From: The Other The lexer is referred to as a ManagedTokenSource within the parser. This lexer does not currently support Unicode, but serves as a starting point to do so. Co-authored-by: Philip Herron Co-authored-by: Arthur Cohen Co-authored-by: Mark Wielaard --- gcc/rust/lex/rust-codepoint

[PATCH Rust front-end v4 09/46] gccrs: Add definitions of Rust Items in AST data structures

2022-12-06 Thread arthur . cohen
From: The Other This adds the proper definitions of our AST Item nodes. Co-authored-by: Philip Herron --- gcc/rust/ast/rust-item.h | 4382 ++ 1 file changed, 4382 insertions(+) create mode 100644 gcc/rust/ast/rust-item.h diff --git a/gcc/rust/ast/rust-item

[PATCH Rust front-end v4 23/46] gccrs: Add Base62 implementation

2022-12-06 Thread arthur . cohen
From: Arthur Cohen Used for V0 symbol mangling scheme which is still in development. --- gcc/rust/util/rust-base62.cc | 46 gcc/rust/util/rust-base62.h | 34 ++ 2 files changed, 80 insertions(+) create mode 100644 gcc/rust/util/rust-

[PATCH Rust front-end v4 20/46] gccrs: Add wrapper for make_unique

2022-12-06 Thread arthur . cohen
From: Philip Herron This is a wrapper for make_unique. We can likely get rid of this, as there are other implementations available, or simply keep using the unique_ptr constructor. --- gcc/rust/util/rust-make-unique.h | 35 1 file changed, 35 insertions(+) creat

[PATCH Rust front-end v4 26/46] gccrs: Add helpers mappings canonical path and lang items

2022-12-06 Thread arthur . cohen
From: Philip Herron These are various helper classes used in the compiler pipeline. --- gcc/rust/util/rust-canonical-path.h | 195 + gcc/rust/util/rust-common.h | 53 ++ gcc/rust/util/rust-hir-map.cc | 980 ++ gcc/rust/util/rust-hir-map.h

[PATCH Rust front-end v4 24/46] gccrs: Add implementation of Optional

2022-12-06 Thread arthur . cohen
From: Arthur Cohen This adds an Optional class to improve error handling. --- gcc/rust/util/rust-optional-test.cc | 110 +++ gcc/rust/util/rust-optional.h | 278 2 files changed, 388 insertions(+) create mode 100644 gcc/rust/util/rust-optional-test.cc

[PATCH Rust front-end v4 18/46] gccrs: Add HIR definitions and visitor framework

2022-12-06 Thread arthur . cohen
From: Philip Herron This patch implements the classes mentioned in the previous HIR patch, as well as a set of visitor frameworks used in handling that HIR. --- gcc/rust/hir/tree/rust-hir-full-decls.h | 232 + gcc/rust/hir/tree/rust-hir-full-test.cc | 5292 +++ gcc/rust/hir/

[PATCH Rust front-end v4 31/46] gccrs: Add const checker

2022-12-06 Thread arthur . cohen
From: Arthur Cohen Similarly to the unsafe checker, constant evaluation can only be performed in a few contexts and include restrictions on the Rust language. Should the user fail to uphold those conditions, errors will be reported and the compilation pipeline interrupted. These contexts are as

[PATCH Rust front-end v4 22/46] gccrs: Add Rust ABI enum helpers

2022-12-06 Thread arthur . cohen
From: Philip Herron This is a simple helper over an enum of possible ABI options in Rust. --- gcc/rust/util/rust-abi.cc | 72 +++ gcc/rust/util/rust-abi.h | 45 2 files changed, 117 insertions(+) create mode 100644 gcc/rust/util/rust

[PATCH Rust front-end v4 25/46] gccrs: Add attributes checker

2022-12-06 Thread arthur . cohen
From: Arthur Cohen The attribute checker is responsible for checking the validity of various attributes including built-in ones. It is currently unfinished and will receive some modifications, as well as become the host of some existing code in the compiler which needs to be refactored. One of it

[PATCH Rust front-end v4 21/46] gccrs: Add port of FNV hash used during legacy symbol mangling

2022-12-06 Thread arthur . cohen
From: Philip Herron This hash was ported from the Go runtime, as we needed a hash for the legacy symbol mangling system. All symbols in Rust contain a hash of some metadata for uniqueness on generic functions. --- gcc/rust/util/fnv-hash.h | 95 1 file cha

[PATCH Rust front-end v4 30/46] gccrs: Add unsafe checks for Rust

2022-12-06 Thread arthur . cohen
From: Arthur Cohen The UnsafeChecker visitor verifies that unsafe actions are only performed in unsafe contexts. Otherwise, an error should be reported to the user and the compilation pipeline should be halted. These contexts, which include unsafe blocks or unsafe functions, are allowed to perfor

[PATCH Rust front-end v4 35/46] gccrs: Add metadata output pass

2022-12-06 Thread arthur . cohen
From: Philip Herron Extern crates statements to tell the front-end to look for another library. The mechanism here is heavily inspired from gccgo, so when we compile a library for example we invoke: gccrs -g -O2 -frust-crate=mylib -c src/lib.rs -o src/mylib.o All going well this object file w

[PATCH Rust front-end v4 32/46] gccrs: Add privacy checks

2022-12-06 Thread arthur . cohen
From: Arthur Cohen This pass is responsible for resolving the privacy of items and verifying that access to these items is performed within the limits of that privacy. By default, items in Rust are private and only public to the current module and its submodules. However, the user can annotate an

[PATCH Rust front-end v4 33/46] gccrs: Add dead code scan on HIR

2022-12-06 Thread arthur . cohen
From: Thomas Young In order to find dead code we use a depth first search and keep liveness variables, after type resolution. In this case, if a function is unused and it calls another function the 2nd function is now unused since the caller is not used etc. The algorithm is a depth first search.

[PATCH Rust front-end v4 34/46] gccrs: Add unused variable scan

2022-12-06 Thread arthur . cohen
From: Philip Herron This is a simple walk_tree which acts on the monomorphized code by walking the compiled translation unit of functions. --- gcc/rust/checks/lints/rust-lint-unused-var.cc | 98 +++ gcc/rust/checks/lints/rust-lint-unused-var.h | 36 +++ 2 files changed, 134

[PATCH Rust front-end v4 39/46] gccrs: These are wrappers ported from reusing gccgo

2022-12-06 Thread arthur . cohen
From: Philip Herron The wrappers over linemap and location will eventually disappear here but served as a useful starting point for us. We have wrappers over the diagnostics system which we might be able to get rid of as well. --- gcc/rust/rust-diagnostics.cc | 244 ++

[PATCH Rust front-end v4 41/46] gccrs: Add config-lang.in

2022-12-06 Thread arthur . cohen
From: Philip Herron This was a copy/paste from gccgo front-end. We do not use any of the target_libs yet, but we will need these when we support the libpanic crate. --- gcc/rust/config-lang.in | 34 ++ 1 file changed, 34 insertions(+) create mode 100644 gcc/rust/

[PATCH Rust front-end v4 28/46] gccrs: Add Rust type information

2022-12-06 Thread arthur . cohen
From: Philip Herron Contains abstractions over Rust's types, used when performing the HIR's type-resolution. --- gcc/rust/typecheck/rust-tyty.cc | 2885 +++ gcc/rust/typecheck/rust-tyty.h | 2533 +++ 2 files changed, 5418 insertions(+) create

[PATCH Rust front-end v4 42/46] gccrs: Add lang-spec.h

2022-12-06 Thread arthur . cohen
From: Philip Herron This specifies the extensions of the Rust language. --- gcc/rust/lang-specs.h | 26 ++ 1 file changed, 26 insertions(+) create mode 100644 gcc/rust/lang-specs.h diff --git a/gcc/rust/lang-specs.h b/gcc/rust/lang-specs.h new file mode 100644 index 000

[PATCH Rust front-end v4 43/46] gccrs: Add lang.opt

2022-12-06 Thread arthur . cohen
From: Philip Herron We have some Rust-specific language options. Note that -fwrapv is enabled by default in the code. We are trying to respect options such as -Wunused-result which we get by porting over C++'s no-discard for Rust's must-use attribute, so we have enabled these by default directly

[PATCH Rust front-end v4 38/46] gccrs: Add HIR to GCC GENERIC lowering entry point

2022-12-06 Thread arthur . cohen
From: Philip Herron This patch contains the entry point and utilities used for the lowering of HIR nodes to `tree`s. It also contains a constant evaluator, ported over from the C++ frontend. Co-authored-by: David Faust Co-authored-by: Faisal Abbas <90.abbasfai...@gmail.com> --- gcc/rust/backen

[PATCH Rust front-end v4 40/46] gccrs: Add GCC Rust front-end Make-lang.in

2022-12-06 Thread arthur . cohen
From: Philip Herron This is the Makefile for our front-end. --- gcc/rust/Make-lang.in | 402 ++ 1 file changed, 402 insertions(+) create mode 100644 gcc/rust/Make-lang.in diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in new file mode 100644 ind

RE: [PATCH] aarch64: Specify that FEAT_MOPS sequences clobber CC

2022-12-06 Thread Kyrylo Tkachov via Gcc-patches
> -Original Message- > From: Kyrylo Tkachov > Sent: Wednesday, November 30, 2022 5:40 PM > To: gcc-patches@gcc.gnu.org > Subject: [PATCH] aarch64: Specify that FEAT_MOPS sequences clobber CC > > Hi all, > > According to the architecture pseudocode the FEAT_MOPS sequences > overwrite th

[PATCH Rust front-end v4 44/46] gccrs: Add compiler driver

2022-12-06 Thread arthur . cohen
From: Philip Herron Our compiler driver is fairly simple so far. The key piece to enforce is that a compilation unit in Rust is the whole crate, so the process for compiling Rust means pointing the compiler at the main entry point such as src/lib.rs or src/main.rs where the expansion pass takes o

[PATCH Rust front-end v4 45/46] gccrs: Compiler proper interface kicks off the pipeline

2022-12-06 Thread arthur . cohen
From: Philip Herron This is a wrapper to get out of C land in the rust-lang.cc and into our class hierarchy for the rust front-end. We expect that the front-end only support one source file input as the expansion pass will attempt to resolve that relative pass and parse accordingly. The main mis

[PATCH Rust front-end v4 46/46] gccrs: Add README, CONTRIBUTING and compiler logo

2022-12-06 Thread arthur . cohen
From: Philip Herron We still need to write out a documentation section, but these READMEs will help in the meantime. --- gcc/rust/CONTRIBUTING.md | 130 +++ gcc/rust/README.md | 264 +++ gcc/rust/logo.png| Bin 0 -> 70864 bytes 3

Re: [PATCH 5/8]AArch64 aarch64: Make existing V2HF be usable.

2022-12-06 Thread Richard Sandiford via Gcc-patches
Tamar Christina writes: > Hi, > > >> This name might cause confusion with the SVE iterators, where FULL means >> "every bit of the register is used". How about something like VMOVE >> instead? >> >> With this change, I guess VALL_F16 represents "The set of all modes for >> which the vld1 intrins

Re: Zen4 tuning part 1 - cost tables

2022-12-06 Thread Richard Biener via Gcc-patches
On Tue, Dec 6, 2022 at 11:01 AM Jan Hubicka via Gcc-patches wrote: > > Hi > this patch updates cost of znver4 mostly based on data measued by Agner Fog. > Compared to previous generations x87 became bit slower which is probably not > big deal (and we have minimal benchmarking coverage for it). On

[committed] testsuite: Use -mnofpu for rx-*-* in ieee testsuite [PR107046]

2022-12-06 Thread Jakub Jelinek via Gcc-patches
Hi! add_options_for_ieee has: if { [istarget alpha*-*-*] || [istarget sh*-*-*] } { return "$flags -mieee" } if { [istarget rx-*-*] } { return "$flags -mnofpu" } but ieee.exp doesn't use add_options_for_ieee, instead it has: if { [istarget "alpha*-*-*"] |

[PATCH] i386: Fix up expander conditions on cbranchbf4 and cstorebf4 [PR107969]

2022-12-06 Thread Jakub Jelinek via Gcc-patches
Hi! With -msoft-float we ICE on __bf16 comparisons, because the insns we want to use under the hood (cbranchsf4 and cstoresf4) after performing the fast extensions aren't available. The following patch copies the conditions from the c*sf4 expanders to the corresponding c*bf4 expanders. Bootstrap

Re: [PATCH] libgcc: Fix uninitialized RA signing on AArch64 [PR107678]

2022-12-06 Thread Szabolcs Nagy via Gcc-patches
The 12/05/2022 19:04, Richard Sandiford wrote: > Wilco Dijkstra writes: > > A recent change only initializes the regs.how[] during Dwarf unwinding > > which resulted in an uninitialized offset used in return address signing > > and random failures during unwinding. The fix is to use REG_SAVED_OFF

Re: [PATCH] i386: Fix up expander conditions on cbranchbf4 and cstorebf4 [PR107969]

2022-12-06 Thread Uros Bizjak via Gcc-patches
On Tue, Dec 6, 2022 at 11:47 AM Jakub Jelinek wrote: > > Hi! > > With -msoft-float we ICE on __bf16 comparisons, because the > insns we want to use under the hood (cbranchsf4 and cstoresf4) > after performing the fast extensions aren't available. > > The following patch copies the conditions from

RE: [PATCH 5/8]AArch64 aarch64: Make existing V2HF be usable.

2022-12-06 Thread Tamar Christina via Gcc-patches
> -Original Message- > From: Richard Sandiford > Sent: Tuesday, December 6, 2022 10:28 AM > To: Tamar Christina > Cc: gcc-patches@gcc.gnu.org; nd ; Richard Earnshaw > ; Marcus Shawcroft > ; Kyrylo Tkachov > Subject: Re: [PATCH 5/8]AArch64 aarch64: Make existing V2HF be usable. > > Tamar

Re: Rust front-end patches v4

2022-12-06 Thread Richard Biener via Gcc-patches
On Tue, Dec 6, 2022 at 11:11 AM wrote: > > This patchset contains the fixed version of our most recent patchset. We > have fixed most of the issues noted in the previous round of reviews, and are > keeping some for later as they would otherwise create too many conflicts with > our updated developm

Re: [PATCH 5/8]AArch64 aarch64: Make existing V2HF be usable.

2022-12-06 Thread Richard Sandiford via Gcc-patches
Tamar Christina writes: >> -Original Message- >> From: Richard Sandiford >> Sent: Tuesday, December 6, 2022 10:28 AM >> To: Tamar Christina >> Cc: gcc-patches@gcc.gnu.org; nd ; Richard Earnshaw >> ; Marcus Shawcroft >> ; Kyrylo Tkachov >> Subject: Re: [PATCH 5/8]AArch64 aarch64: Make ex

Re: Rust front-end patches v4

2022-12-06 Thread John Paul Adrian Glaubitz
On 12/6/22 12:03, Richard Biener via Gcc-rust wrote: On Tue, Dec 6, 2022 at 11:11 AM wrote: This patchset contains the fixed version of our most recent patchset. We have fixed most of the issues noted in the previous round of reviews, and are keeping some for later as they would otherwise crea

Zen4 tuning part 2 - tuning flags

2022-12-06 Thread Jan Hubicka via Gcc-patches
Hi, this patch adds tunes needed for zen4 microarchitecture. I added two new knobs. TARGET_AVX512_SPLIT_REGS which is used to specify that internally 512 vectors are split to 256 vectors. This affects vectorization costs and reassociation width. It probably should also affect RTX costs however I

[PATCH] arm: Fix MVE's vcmp vector-scalar patterns [PR107987]

2022-12-06 Thread Andre Simoes Dias Vieira via Gcc-patches
Hi, This patch surrounds the scalar operand of the MVE vcmp patterns with a vec_duplicate to ensure both operands of the comparision operator have the same (vector) mode. Regression tested on arm-none-eabi. Is this OK for trunk? And a backport to GCC 12? gcc/ChangeLog: PR target/107987

RE: [PATCH] arm: Fix MVE's vcmp vector-scalar patterns [PR107987]

2022-12-06 Thread Kyrylo Tkachov via Gcc-patches
> -Original Message- > From: Andre Simoes Dias Vieira > Sent: Tuesday, December 6, 2022 11:19 AM > To: 'gcc-patches@gcc.gnu.org' > Cc: Kyrylo Tkachov ; Richard Earnshaw > > Subject: [PATCH] arm: Fix MVE's vcmp vector-scalar patterns [PR107987] > > Hi, > > This patch surrounds the sc

Re: Java front-end and library patches.

2022-12-06 Thread Zopolis0 via Gcc-patches
> Patches 1 and 2 don't seem to have reached the mailing list. File size issues on the receiving server. I bzip3 compressed them, but they were still too big.

Re: Zen4 tuning part 1 - cost tables

2022-12-06 Thread Jan Hubicka via Gcc-patches
> > - COSTS_N_INSNS (5), /* cost of FADD and FSUB insns. */ > > - COSTS_N_INSNS (5), /* cost of FMUL instruction. */ > > + COSTS_N_INSNS (7), /* cost of FADD and FSUB insns. */ > > + COSTS_N_INSNS (7), /* cost of FMUL in

Re: [PATCH 2/3] Make __float128 use the _Float128 type, PR target/107299

2022-12-06 Thread Kewen.Lin via Gcc-patches
Hi Mike, Thanks for fixing this, some comments are inlined below. on 2022/11/2 10:42, Michael Meissner wrote: > This patch fixes the issue that GCC cannot build when the default long double > is IEEE 128-bit. It fails in building libgcc, specifically when it is trying > to buld the __mulkc3 func

Re: [GCC][PATCH v2] arm: Add pacbti related multilib support for armv8.1-m.main.

2022-12-06 Thread Srinath Parvathaneni via Gcc-patches
Ping!! From: Gcc-patches on behalf of Srinath Parvathaneni via Gcc-patches Sent: 31 October 2022 15:36 To: gcc-patches@gcc.gnu.org Cc: Richard Earnshaw Subject: [GCC][PATCH v2] arm: Add pacbti related multilib support for armv8.1-m.main. Hi, This patch adds

Re: [GCC][PATCH v2] arm: Add cde feature support for Cortex-M55 CPU.

2022-12-06 Thread Srinath Parvathaneni via Gcc-patches
Ping!! From: Srinath Parvathaneni Sent: 31 October 2022 12:38 To: gcc-patches@gcc.gnu.org Cc: Richard Earnshaw ; Christophe Lyon Subject: RE: [GCC][PATCH v2] arm: Add cde feature support for Cortex-M55 CPU. Hi, > -Original Message- > From: Christophe Ly

Re: [GCC][PATCH 13/15, v4] arm: Add support for dwarf debug directives and pseudo hard-register for PAC feature.

2022-12-06 Thread Srinath Parvathaneni via Gcc-patches
Ping!! From: Gcc-patches on behalf of Srinath Parvathaneni via Gcc-patches Sent: 09 November 2022 14:32 To: gcc-patches@gcc.gnu.org Cc: Richard Earnshaw ; Kyrylo Tkachov Subject: [GCC][PATCH 13/15, v4] arm: Add support for dwarf debug directives and pseudo h

Re: Rust front-end patches v4

2022-12-06 Thread Arthur Cohen
On 12/6/22 12:09, John Paul Adrian Glaubitz wrote: On 12/6/22 12:03, Richard Biener via Gcc-rust wrote: On Tue, Dec 6, 2022 at 11:11 AM wrote: This patchset contains the fixed version of our most recent patchset. We have fixed most of the issues noted in the previous round of reviews, and

Re: Rust front-end patches v4

2022-12-06 Thread Iain Buclaw via Gcc-patches
Excerpts from Richard Biener via Gcc-patches's message of Dezember 6, 2022 12:03 pm: > On Tue, Dec 6, 2022 at 11:11 AM wrote: >> >> This patchset contains the fixed version of our most recent patchset. We >> have fixed most of the issues noted in the previous round of reviews, and are >> keeping

Re: Rust front-end patches v4

2022-12-06 Thread John Paul Adrian Glaubitz
On 12/6/22 12:40, Arthur Cohen wrote: Can't wait to see this becoming available in the distributions :D. I will make sure we get the frontend enabled in Debian as soon as possible. Haha, I appreciate the enthusiasm :) Please note however that despite the language being in, the compiler is sti

Re: [PATCH] libgcc: Fix uninitialized RA signing on AArch64 [PR107678]

2022-12-06 Thread Wilco Dijkstra via Gcc-patches
Hi, > i don't think how[*RA_STATE] can ever be set to REG_SAVED_OFFSET, > this pseudo reg is not spilled to the stack, it is reset to 0 in > each frame and then toggled within a frame. It's is just a state, we can use any state we want since it is a pseudo reg. These registers are global and shar

Re: [PATCH 14/56] middle-end: Set TREE_ADDRESSABLE in folding debug stmts.

2022-12-06 Thread Zopolis0 via Gcc-patches
New plan-- this patch is entirely pointless! I have reverted it in a local build and had no regressions. As such, simply do not review or consider this patch. I am not not planning on re-sending the patchset even though it adjusts the patch numbers because it is such an arduous process given that

Re: [PATCH] Add a new conversion for conditional ternary set into ifcvt [PR106536]

2022-12-06 Thread Segher Boessenkool
Hi! On Thu, Nov 24, 2022 at 11:24:15AM +0100, Richard Biener wrote: > On Thu, Nov 24, 2022 at 8:25 AM HAO CHEN GUI wrote: > > 在 2022/11/24 4:06, Richard Biener 写道: > > > Wouldn't we usually either add an optab or try to recog a canonical > > > RTL form instead of adding a new target hook for thin

[committed] onlinedocs: Add documentation links to gdc

2022-12-06 Thread Iain Buclaw via Gcc-patches
Hi, Now that the D front-end documentation has been generated and pushed to the site after r13-4421, this can be added to the main index page. This is a simple copy from other entries, so have gone ahead and committed it. Regards, Iain. --- htdocs/onlinedocs/index.html | 6 ++ 1 file chang

Re: Rust front-end patches v4

2022-12-06 Thread Mark Wielaard
Hi John, On Tue, Dec 06, 2022 at 12:57:17PM +0100, John Paul Adrian Glaubitz wrote: > On 12/6/22 12:40, Arthur Cohen wrote: > > > Can't wait to see this becoming available in the distributions :D. > > > > > > I will make sure we get the frontend enabled in Debian as soon as > > > possible. > >

Re: [committed] onlinedocs: Add documentation links to gdc

2022-12-06 Thread Gerald Pfeifer
On Tue, 6 Dec 2022, Iain Buclaw wrote: > Now that the D front-end documentation has been generated and pushed to > the site after r13-4421, this can be added to the main index page. > > This is a simple copy from other entries, so have gone ahead and > committed it. Cool, thank you. And sorry, I

[PATCH RFA] build: add -Wconditionally-supported to strict_warn [PR64867]

2022-12-06 Thread Jason Merrill via Gcc-patches
Tested x86_64-pc-linux-gnu, OK for trunk? -- 8< -- The PR (which isn't resolved by this commit) pointed out to me that GCC should build with -Wconditionally-supported to support bootstrapping with a C++11 compiler that makes different choices. PR c++/64867 gcc/ChangeLog: * conf

[COMMITTED] ada: Add Codepeer Exemption + simplify TO_C code.

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Liaiss Merzougue This patch simplify the TO_C code to have a single branch for raising exception. Furthermore, adding pragma annotate for codepeer to ignore uninitialized value since this is caused because we have input check before the initialization. gcc/ada/ * libgnat/i-c.adb (

[COMMITTED] ada: Use larger type for membership test of universal value

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Eric Botcazou When a membership test is applied to a nonstatic expression of a universal type, for example an attribute whose type is universal_integer and whose prefix is not static, the operation is performed using the tested type that is determined by the choice list. In particular, a c

[COMMITTED] ada: Spurious error on nested call using the prefix notation

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Javier Miranda gcc/ada/ * exp_ch6.adb (Build_Static_Check_Helper_Call): Perform implicit type conversion to ensure matching types and avoid reporting spurious errors. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_ch6.adb | 7 --- 1 file

[COMMITTED] ada: Elide the copy in extended returns for nonlimited by-reference types

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Eric Botcazou This implements elision of the copy operation for extended return statements in the case of nonlimited by-reference types (the copy operation is already elided for limited types by the front-end and nonlimited non-by-reference types by the code generator), which comprise contr

[COMMITTED] ada: Small adjustment to special resolution of membership test

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Eric Botcazou It's needed because, in GNAT, universal_integer does not cover all the values of all the supported integer types. gcc/ada/ * sem_res.adb (Resolve_Membership_Op): Adjust latest change. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_res.adb | 18

[COMMITTED] ada: Suppress warning for specific constant valid condition

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Eric Botcazou Like in Exp_Ch4, we do not want to give warnings in Sem_Warn on a membership test with a mark for a subtype that is predicated. gcc/ada/ * sem_warn.adb (Warn_On_Constant_Valid_Condition): Bail out for a membership test with a mark for a subtype that is predic

[COMMITTED] ada: Fix spurious error in checking of SPARK elaboration

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Eric Botcazou The problem is that the computation of early call regions skips freeze nodes but scenarios involving procedures declared as actions of these freeze nodes are taken into account. As a consequence if a subprogram body, typically of an expression function, is placed just after a

[COMMITTED] ada: Allow No_Caching on volatile types

2022-12-06 Thread Marc Poulhiès via Gcc-patches
From: Yannick Moy SPARK RM now allow the property No_Caching on volatile types, to indicate that they should be considered volatile for compilation, but not by GNATprove's analysis. gcc/ada/ * contracts.adb (Add_Contract_Item): Allow No_Caching on types. (Check_Type_Or_Object_Ex

[PATCH v3 6/19] modula2 front end: libgm2/libm2min contents

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patch set consists of the makefiles, autoconf and a few C sources to build the libgm2/libm2min libraries. --8<--8<--8<--8<--8<--8< diff -ruw /dev/null gcc-git-devel-modula2/libgm2/libm2min/Makefile.am --- /dev/null 2022-08-24 16:22:16.88

[PATCH v3 7/19] modula2 front end: libgm2/libm2log contents

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patch set consists of the makefiles, autoconf sources necessary to build the various libgm2 libraries. The c/c++/h files are included in the patch set. The modula-2 sources are found in gcc/m2. --8<--8<--8<--8<--8<--8< diff -ruw /dev/nul

[PATCH v3 5/19] modula2 front end: libgm2/libm2iso contents

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patch set consists of the makefiles, autoconf sources necessary to build the various libgm2/libm2iso libraries. The c/c++/h files are also included in the patch set. The modula-2 sources are found in gcc/m2. --8<--8<--8<--8<--8<--8< diff

[PATCH v3 1/19] modula2 front end: changes outside gcc/m2, libgm2 and gcc/testsuite.

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patch set contains the non machine generated changes found in / for example the language die and documentation changes. It also contains the changes to the top level build Makefile infastructure and the install.texi sourcebuild.texi documentation. --8<--8<--8<---

[PATCH v3 9/19] modula2 front end: plugin source files

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patchset contains the modula2 plugin which detects some runtime errors at compiletime. --8<--8<--8<--8<--8<--8< diff -ruw /dev/null gcc-git-devel-modula2/gcc/m2/plugin/m2rte.cc --- /dev/null 2022-08-24 16:22:16.88870 +0100 +++ gcc-gi

[PATCH v3 8/19] modula2 front end: libgm2 contents

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patch set consists of the libgm2 makefile, autoconf sources necessary to build the libm2pim, libm2iso, libm2min, libm2cor and libm2log. --8<--8<--8<--8<--8<--8< diff -ruw /dev/null gcc-git-devel-modula2/libgm2/ChangeLog --- /dev/null 202

[PATCH v3 3/19] modula2 front end: gm2 driver files.

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patchset contains the c++, h and option related files necessary to build the driver program gm2. The patch also consists of the autoconf/configure related build infastructure sources found in gcc/m2. The reviewer might need to look at the 01-02-make patchset. The gm2 driver is heavily bas

[PATCH v3 17/19] modula2 front end: dejagnu expect library scripts

2022-12-06 Thread Gaius Mulley via Gcc-patches
Here are the dejagnu expect library scripts for the gm2 testsuite. --8<--8<--8<--8<--8<--8< diff -ruw /dev/null gcc-git-devel-modula2/gcc/testsuite/lib/gm2.exp --- /dev/null 2022-08-24 16:22:16.88870 +0100 +++ gcc-git-devel-modula2/gcc/te

[PATCH v3 4/19] modula2 front end: libgm2/libm2pim contents

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patch set consists of the makefiles, autoconf sources necessary to build the various libgm2/libm2pim libraries. The c/c++/h files are included in the patch set. The modula-2 sources are found in gcc/m2/ as they are used by the compiler. --8<--8<--8<--8<-

[PATCH v3 15/19] modula2 front end: cc1gm2 additional non modula2 source files

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patch set contains the .h, .cc and .flex files found in gcc/m2. The files are tightly coupled with the gimple interface (see 04-gimple-interface) and built using the rules found in (01-03-make). --8<--8<--8<--8<--8<--8< diff -ruw /dev/nul

[PATCH v3 2/19] modula2 front end: Make-lang.in

2022-12-06 Thread Gaius Mulley via Gcc-patches
The makefile fragment for modula2 which builds the gm2 driver and cc1gm2. --8<--8<--8<--8<--8<--8< diff -ruw /dev/null gcc-git-devel-modula2/gcc/m2/Make-lang.in --- /dev/null 2022-08-24 16:22:16.88870 +0100 +++ gcc-git-devel-modula2/gcc/m

[PATCH v3 16/19] modula2 front end: bootstrap and documentation tools

2022-12-06 Thread Gaius Mulley via Gcc-patches
Hi Martin, here is the revised patch having applied all previous recommendations: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603436.html. Is this ok now? Thanks for the improvement suggestions. --8<--8<--8<--8<--8<--8< diff -ruw /d

[PATCH v3 13/19] modula2 front end: gimple interface *[g-m]*.cc

2022-12-06 Thread Gaius Mulley via Gcc-patches
This patchset contains the gimple interface. --8<--8<--8<--8<--8<--8< diff -ruw /dev/null gcc-git-devel-modula2/gcc/m2/gm2-gcc/m2linemap.cc --- /dev/null 2022-08-24 16:22:16.88870 +0100 +++ gcc-git-devel-modula2/gcc/m2/gm2-gcc/m2linemap.c

[PATCH v3 0/19] modula-2 front end patches overview

2022-12-06 Thread Gaius Mulley via Gcc-patches
Here are the latest modula-2 front end patches. Since the posting in https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603161.html I've rewritten the python3 documentation scripts (feedback from patchset 16) and applied all the suggestions from the feedback in patchset 15 (gm2-lang.cc). Al

  1   2   >