Re: [PATCH] Fix simplify-rtx.c handling of avx512 vector comparisons (PR target/92908)

2019-12-13 Thread Richard Biener
On December 13, 2019 12:54:08 AM GMT+01:00, Jakub Jelinek wrote: >On Thu, Dec 12, 2019 at 04:59:40PM +0100, Richard Biener wrote: >> >If it starts being ambiguous somewhere, could we use some target >macro >> >or >> >target hook to decide? >> >> Ambiguous IL is bad :/ IL semantics dependent

Re: [RFC] ipa-cp: Fix PGO regression caused by r278808

2019-12-13 Thread luoxhu
Thanks Honza, On 2019/12/10 19:06, Jan Hubicka wrote: >> Hi, >> >> On Tue, Dec 10 2019, Jan Hubicka wrote: >>> Hi, >>> I think the updating should treat self recursive edges as loops: that is >>> calculate SUM of counts incomming edges which are not self recursive, >>> calculate probability of

[Committed] Add C testcases for PR 86659

2019-12-13 Thread Andrew Pinski
Hi all, Since Ada is not always tested and I had received a testcase from a customer for the same issue (I had backported the patch which caused it), I thought I would create a full testcase that fails with C code. NOTE this does not fail on x86_64 (nor aarch64) before the patch for PR86659 due

Re: Add a compatible_vector_types_p target hook

2019-12-13 Thread Richard Biener
On December 12, 2019 7:15:36 PM GMT+01:00, Richard Sandiford wrote: >Richard Biener writes: >> On December 12, 2019 5:44:25 PM GMT+01:00, Richard Sandiford > wrote: >>>Richard Biener writes: On December 12, 2019 4:10:33 PM GMT+01:00, Richard Sandiford >>> wrote: >One problem with

Re: [PATCH][AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16

2019-12-13 Thread Richard Sandiford
Dennis Zhang writes: > Hi Richard, > > On 06/12/2019 10:22, Richard Sandiford wrote: >> Dennis Zhang writes: >>> 2019-12-04 Dennis Zhang >>> >>> * config/aarch64/aarch64-arches.def (armv8.6-a): New. >>> * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define >>>

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Oleg Endo
On Fri, 2019-12-13 at 05:03 -0600, Segher Boessenkool wrote: > On Thu, Dec 12, 2019 at 09:32:27AM +, Richard Sandiford wrote: > > I doubt it will be long before we deprecate > > all targets that require old reload.) > > Do we wait until GCC 12 (to remove old reload completely)? If not, we >

Re: [testsuite][arm] Remove xfail for vect-epilogues test

2019-12-13 Thread Andre Vieira (lists)
Thanks for pointing it out Rainer. Thanks to that reminder I noticed there is a different way to achieve this without adding that extra target check. This OK? gcc/testsuite/ChangeLog: 2019-12-12 Andre Vieira * gcc.dg/vect/vect-epilogues.c: XFAIL for arm big endian. On 12/12/2019

Re: [testsuite][arm] Remove xfail for vect-epilogues test

2019-12-13 Thread Andre Vieira (lists)
Consequently whilst looking at the list I noticed these two were missing. This OK for trunk? gcc/ChangeLog: 2019-12-13 Andre Vieira * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented existing target checks. On 13/12/2019 13:05, Andre Vieira (lists) wrote:

[OpenACC] Elaborate/simplify 'exit data' 'finalize' handling (was: [OpenACC] Update OpenACC data clause semantics to the 2.5 behavior)

2019-12-13 Thread Thomas Schwinge
Hi! Julian, Tobias, regarding the following OpenACC 'exit data' 'finalize' handling: On 2018-05-25T13:01:58-0700, Cesar Philippidis wrote: > --- a/gcc/gimplify.c > +++ b/gcc/gimplify.c > @@ -10859,6 +10849,53 @@ gimplify_omp_target_update (tree *expr_p, gimple_seq > *pre_p) > + else if

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread John Paul Adrian Glaubitz
Hello Segher! > With LRA, sh builds fine (with the combine2 patches). I have no idea > if correct code is generated, but it doesn't ICE anymore. What are the combine2 patches? And I would support switching SH to LRA as there are a few cases (Debian packages) where GCC fails with an internal

[patch] Identify sections in vx-common.h

2019-12-13 Thread Olivier Hainque
This patch simply adds sectioning comments in vx-common.h and moves the NO_DOLLAR/DOT_IN_LABEL block down, away from the section now dedicated to SPEC strings. Goal to improve readability and facilitate future changes to come. Tested in accordance with the description in

Fix merging of common target infos

2019-12-13 Thread Jan Hubicka
Hi, while looking into Firefox regression compared to gcc9 I noticed that we often confuse common target infos when profiles get merged. This patch adds the missing update bits. Honza * ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common targets. Index: ipa-utils.c

[patch] Setup TARGET_C_PREINCLUDE for VxWorks

2019-12-13 Thread Olivier Hainque
This patch modifies the C & C++ VxWorks compiler to predefine the __STDC_ macros verified by gcc.dg/c99-predef-1.c in the testsuite. We setup a vxworks-predef.h header file which arranges to define TARGET_C_PREINCLUDE, in a separate config/vxworks directory where other runtime header files

Re: [PATCH 11/49] Add diagnostic_metadata and CWE support

2019-12-13 Thread David Malcolm
On Fri, 2019-12-13 at 09:43 -0700, Martin Sebor wrote: > On 12/12/19 7:59 PM, David Malcolm wrote: > > On Wed, 2019-12-04 at 10:36 -0700, Martin Sebor wrote: > > > On 11/15/19 6:22 PM, David Malcolm wrote: > > > > This patch adds support for associating a diagnostic with an > > > > optional > > >

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Oleg Endo
On Fri, 2019-12-13 at 16:09 +0100, John Paul Adrian Glaubitz wrote: > Hi! > > On 12/13/19 4:06 PM, Oleg Endo wrote: > > > What are the combine2 patches? > > > > See the other thread that I've linked in my message. > > I don't see any patch there. You'd have to crawl up the discussion or so.

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Richard Sandiford
John Paul Adrian Glaubitz writes: > Hi! > > On 12/13/19 4:06 PM, Oleg Endo wrote: >>> What are the combine2 patches? >> >> See the other thread that I've linked in my message. > > I don't see any patch there. The latest version is: https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00287.html

[PATCH, c] all plattforms: support using a CC_REG instead cc0_rtx

2019-12-13 Thread Stefan Franke
Hi there, I suggest this patch to allow architectures do substitute cc0_rtx with a generated cc register. Why? If you are using a cc register plus your architecture as many instructions which may clobber that cc register, some passes (e.g. gcse) will reorder the insns. This can lead to the

[committed, amdgcn] Add sub-dword vector multiply

2019-12-13 Thread Andrew Stubbs
I've committed this patch to add v64qi and v64hi multiply patterns. This is slowly working toward full char and short vectorization. Andrew Sub-dword vector multiply for amdgcn 2019-12-13 Andrew Stubbs gcc/ * config/gcn/gcn-valu.md (mulv64si3): Rename to ... (mul3): ... this, and

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Oleg Endo
On Fri, 2019-12-13 at 08:09 -0600, Segher Boessenkool wrote: > On Fri, Dec 13, 2019 at 10:06:20PM +0900, Oleg Endo wrote: > > On Fri, 2019-12-13 at 05:03 -0600, Segher Boessenkool wrote: > > > On Thu, Dec 12, 2019 at 09:32:27AM +, Richard Sandiford > > > wrote: > > > > I doubt it will be long

[patch] Define STARTFILE_PREFIX_SPEC for powerpc VxWorks < 7

2019-12-13 Thread Olivier Hainque
Prior to VxWorks 7, the path where startfiles and core libraries are located contains CPU architecture specific name components. This should normally be expressed through a CPU specific STARTFILE_PREFIX_SPEC for such versions of VxWorks. This change adds a definition for the PowerPc family, which

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread John Paul Adrian Glaubitz
Hi! On 12/13/19 4:06 PM, Oleg Endo wrote: >> What are the combine2 patches? > > See the other thread that I've linked in my message. I don't see any patch there. >> And I would support switching SH to LRA as >> there are a few cases (Debian packages) where GCC fails with an internal >>

[committed, amdgcn] Add sub-dword vector extend and truncate insns

2019-12-13 Thread Andrew Stubbs
I've committed the attached patch to add extend, zero_extend, and trunc instructions patterns to, from and between the v64qi and v64hi modes. The patch adds both normal and the masked "exec" variants of the patterns, as per the rest of the machine description. The FP conversions also had to

Re: [patch, openacc] Adjust tests for amdgcn offloading

2019-12-13 Thread Andrew Stubbs
On 19/11/2019 12:21, Andrew Stubbs wrote: This patch adds GCN special casing for most of the OpenACC libgomp tests that require it. It also disables one testcase that explicitly uses CUDA. The patches aren't all that controversial, should only change the results on amdgcn, and Tobias already

[LTO] PR 86416 – improve lto1 diagnostic if a mode does not exist (esp. for offloading targets)

2019-12-13 Thread Tobias Burnus
As long as one compiles for a single target, the message is unlikely to appear. However, when compiling for offloading, the modes supported on the target 'host' and on the target 'device' can be different. In particular, 'long double' (when larger than double) and '__float128' might not be

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Jeff Law
On Fri, 2019-12-13 at 05:03 -0600, Segher Boessenkool wrote: > On Thu, Dec 12, 2019 at 09:32:27AM +, Richard Sandiford wrote: > > I doubt it will be long before we deprecate > > all targets that require old reload.) > > Do we wait until GCC 12 (to remove old reload completely)? If not, we >

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Oleg Endo
On Fri, 2019-12-13 at 15:57 +0100, John Paul Adrian Glaubitz wrote: > Hello Segher! > > > With LRA, sh builds fine (with the combine2 patches). I have no idea > > if correct code is generated, but it doesn't ICE anymore. > > What are the combine2 patches? See the other thread that I've linked

[patch] Refine definitions for wchar_t/wint_t on VxWorks

2019-12-13 Thread Olivier Hainque
This change refines the VxWorks macro definitions configuring wchar_t to accommodate the VxWorks7 environment, where wchar_t is now typically a 32bit type. We also ensure that the definitions for wint_t are always based on those for wchar_t, so the two remain in sync in environments where

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Segher Boessenkool
On Fri, Dec 13, 2019 at 01:19:55PM +0100, Richard Biener wrote: > On December 13, 2019 12:03:30 PM GMT+01:00, Segher Boessenkool > wrote: > >On Thu, Dec 12, 2019 at 09:32:27AM +, Richard Sandiford wrote: > >> I doubt it will be long before we deprecate > >> all targets that require old

Re: [PATCH, OpenACC] Fix potential race condition in OpenACC "exit data" operations

2019-12-13 Thread Thomas Schwinge
Hi Julian! On 2019-12-12T19:01:21+, Julian Brown wrote: > This is a fix for PR92881, broken out of the larger "reference counting > overhaul" patch last posted here: > > https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02235.html Thanks! > The current implementation (potentially with

'find_group_last' (was: [PATCH] OpenACC reference count overhaul)

2019-12-13 Thread Thomas Schwinge
Hi Julian! On 2019-10-29T12:15:01+, Julian Brown wrote: > On Mon, 21 Oct 2019 16:14:11 +0200 > Thomas Schwinge wrote: > >> On 2019-10-03T09:35:04-0700, Julian Brown >> wrote: >> > --- a/libgomp/oacc-parallel.c >> > +++ b/libgomp/oacc-parallel.c >> > @@ -56,12 +56,29 @@ find_pointer (int

[patch] Simplify the compilation commands for config/vxworks.c

2019-12-13 Thread Olivier Hainque
The patch by Joel setting up TARGET_C_PREINCLUDE exposed a possibility to simplify/robustify the compilation commands use for another source in the t-vxworks Makefile fragment. We now leverage $(COMPILE) and $(POSTCOMPILE) instead of replicating them manually for vxworks.c. Tested in accordance

[patch] Introduce an internal API for VxWorks version checks

2019-12-13 Thread Olivier Hainque
This changes introduces an internal API for VxWorks version checks within runtime files, a prerequisite to a few fixes coming up for libstdc++ builds on more recent versions of the OS. Tested in accordance with the description in https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00911.html

Re: [PATCH 11/49] Add diagnostic_metadata and CWE support

2019-12-13 Thread Martin Sebor
On 12/12/19 7:59 PM, David Malcolm wrote: On Wed, 2019-12-04 at 10:36 -0700, Martin Sebor wrote: On 11/15/19 6:22 PM, David Malcolm wrote: This patch adds support for associating a diagnostic with an optional diagnostic_metadata object, so that plugins can add extra data to their diagnostics

[patch] Arrange to preinclude yvals.h ahead of stdint on VxWorks 7

2019-12-13 Thread Olivier Hainque
On Vxworks 7, includers of stdint.h (which we currently "provide") need yvals.h to have been included ahead. Instead of altering the common stdint-gcc.h with unpleasant vxworks specific bits to do that, we arrange to provide stdint-gcc.h on its own along with a stdint.h wrapper which preincludes

[patch] Improve recursion protection for VxWorks limits.h

2019-12-13 Thread Olivier Hainque
This change fixes latent failures actually observed when activating libstdc++ for VxWorks on aarch46 VxWorks 7 and powerpc VxWorks 6. The system limits.h is dated on some configurations, so we provide our own version to expose constants required by more recent C standards. Our

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Segher Boessenkool
On Fri, Dec 13, 2019 at 10:06:20PM +0900, Oleg Endo wrote: > On Fri, 2019-12-13 at 05:03 -0600, Segher Boessenkool wrote: > > On Thu, Dec 12, 2019 at 09:32:27AM +, Richard Sandiford wrote: > > > I doubt it will be long before we deprecate > > > all targets that require old reload.) > > > > Do

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Segher Boessenkool
On Sat, Dec 14, 2019 at 12:06:36AM +0900, Oleg Endo wrote: > On Fri, 2019-12-13 at 15:57 +0100, John Paul Adrian Glaubitz wrote: > > Hello Segher! Hi :-) > > > With LRA, sh builds fine (with the combine2 patches). I have no idea > > > if correct code is generated, but it doesn't ICE anymore. >

[patch] Setup system header wrappers for C++ on VxWorks

2019-12-13 Thread Olivier Hainque
Starting from VxWorks 7, the system comes with a Dinkumware environment which requires the inclusion of "yvals.h" before other system headers. We provide wrapped versions of a few headers to accommodate such constraints. Initially proposed by Jérôme, this helps fix dozens of build issues

[patch] Adapt libstdc++ os_defines for VxWorks to more recent versions

2019-12-13 Thread Olivier Hainque
Hello, This change reworks the VxWorks specific os_defines.h internal lisbstdc++ header to help fix build and runtime failures of various kinds in environments from 6.4/6.9 to 7 SR640, based on experiments and observations conducted against real installs of these OSes for different CPU

[Ada] Implement AI12-0101

2019-12-13 Thread Pierre-Marie de Rodat
This AI simply relaxes a legality rule, legalizing a construct that was previously illegal. In particular, it deletes the second sentence of 4.5.2(9.8) In addition, if the untagged record type has a nonlimited partial view, then the declaration shall occur in the visible part of the

[Ada] Missing accessibility checks on conditionals

2019-12-13 Thread Pierre-Marie de Rodat
This is an incremental patch which fixes a compiler error whereby accessbility checks on if and case expressions used to set access discriminants within allocators were not performed. It also corrects an issue where dynamic accessibility levels are not passed correctly when a conditional

[Ada] Up-level addressing problems with private tasks and selective accept procs

2019-12-13 Thread Pierre-Marie de Rodat
When a task type has a partial view, the procedure created for a selective accept statement within the task was not being passed an activation record actual (despite having such a formal), and also certain variables addressed up-level were not being stored within the activation record. This was

[Ada] Clear confusion about subcomponents of atomic object

2019-12-13 Thread Pierre-Marie de Rodat
The Ada RM explicitly says in the C.6 sub-chapter that, contrary to what happens for the Volatile aspect, the Atomic aspect doesn't automatically propagate down to subcomponents of atomic objects. That is not what is implemented in the compiler, in particular in the Is_Atomic_Object predicate of

[Ada] Rtsfind: minor comment fixes

2019-12-13 Thread Pierre-Marie de Rodat
The comment was way too repetitive. The term "second level child" sounds like it means "grandchild", but that's not what was meant. This comment was written in 1994: ...This is part of a temporary implementation of delays; --eventually, packages implementing delays

[Ada] Spurious error on overriding controlled primitive

2019-12-13 Thread Pierre-Marie de Rodat
This patch fixes an issue whereby the compiler generates spurious ineffective overriding subprogram errors on instantiations of generic child packages where such packages contain overriding controlled primitives for types extended from parent packages which are, in turn, private controlled

Re: [PATCH] [AARCH64] Improve vector generation cost model

2019-12-13 Thread Kyrill Tkachov
Hi Andrew, On 3/15/19 1:18 AM, apin...@marvell.com wrote: From: Andrew Pinski Hi,   On OcteonTX2, ld1r and ld1 (with a single lane) are split into two different micro-ops unlike most other targets. This adds three extra costs to the cost table: ld1_dup: used for "ld1r {v0.4s}, [x0]"

Re: Add a compatible_vector_types_p target hook

2019-12-13 Thread Richard Biener
On December 13, 2019 10:12:40 AM GMT+01:00, Richard Sandiford wrote: >Richard Biener writes: >The AArch64 port emits an error if calls pass values of SVE type to >>>an >unprototyped function. To do that we need to know whether the >value >really is an SVE type rathr than a plain

[PATCH][AArch64] Fixup core tunings

2019-12-13 Thread Wilco Dijkstra
Several tuning settings in cores.def are not consistent. Set the tuning for Cortex-A76AE and Cortex-A77 to neoversen1 so it is the same as for Cortex-A76 and Neoverse N1. Set the tuning for Neoverse E1 to cortexa73 so it's the same as for Cortex-A65. Set the scheduler for Cortex-A65 and

[Ada] Fix support for > 24 hours image in Ada.Calendar.Formatting

2019-12-13 Thread Pierre-Marie de Rodat
The Ada.Calendar.Formatting.Image function is supposed to support at least durations up to (excluding) 100 hours. Fixes the implementation so that it does and clarify in the spec the behavior when the duration exceeds 100 hours (raise Time_Error). Tested on x86_64-pc-linux-gnu, committed on trunk

[Ada] Pragma Linker_Section in subprogram instantiations in CCG

2019-12-13 Thread Pierre-Marie de Rodat
Propagate attribute Linker_Section_Pragma to the ultimate aliased entity to facilitate processing it in instantantiations of generic subprograms in the C backend. Tested on x86_64-pc-linux-gnu, committed on trunk 2019-12-13 Javier Miranda gcc/ada/ * sem_prag.adb (Analyze_Pragma):

[Ada] Suppress Base_Address call on init of activation record components

2019-12-13 Thread Pierre-Marie de Rodat
In the special case of an Address attribute that is used to initialize a component of an activation record object (for handling unnesting in back ends that don't support nested subprograms directly, such as LLVM), we don't want the attribute to be passed to the Base_Address function (that performs

[Ada] Detect illegal implicit type conversions

2019-12-13 Thread Pierre-Marie de Rodat
When testing whether the target of a type conversion is a general access type, the test should not be E_Kind (Target_Type) = E_General_Access_Type but rather E_Kind (Base_Type (Target_Type)) = E_General_Access_Type Fix this bug in two places. As a consequence of these bugs, some of the

[Ada] Deallocation of controlled type implementing interface types

2019-12-13 Thread Pierre-Marie de Rodat
The code generated by the compiler to deallocate a controlled type that has variable size components and implements interface types computes a wrong address (and crashes at runtime). Tested on x86_64-pc-linux-gnu, committed on trunk 2019-12-13 Javier Miranda gcc/ada/ * exp_disp.ads

[Ada] Avoid spurious mismatch error of assertion policy in generics

2019-12-13 Thread Pierre-Marie de Rodat
Because of the way generics are analyzed, it is possible that an assertion pragma is transformed into a Check pragma by the time ghost code inside the assertion is checked for a possible mismatch of assertion policy. In that case, the original pragma that led to the Check pragma should be

[Ada] Adding support for unsupported type conversion in CCG

2019-12-13 Thread Pierre-Marie de Rodat
Generate an extra temporary for the unchecked conversion of a function call returning a composite type, and for the unchecked conversion to a composite type of a function call returning a discrete type (since the C backend does not support such cases). Tested on x86_64-pc-linux-gnu, committed on

[Ada] Prevent inlining inside condition of while loop in GNATprove

2019-12-13 Thread Pierre-Marie de Rodat
The special inlining performed in GNATprove should not allow inlining inside the condition of while loops, as this creates complex actions inside the condition itself, which are not handled by GNATprove. Other loops are not impacted, as the bounds are only computed once, which allows to move the

[Ada] Better error message for aliased formal and atomic actual

2019-12-13 Thread Pierre-Marie de Rodat
The C.6 (12/3) clause makes it illegal to pass an atomic actual parameter in a call corresponding to an aliased formal with a nonatomic type. This illegal case had been accepted up recently and started only to be rejected as a by-product of the implementation of the C.6 (19) clause, but the error

Re: [GCC][PATCH][AArch64]Add ACLE intrinsics for dot product (usdot - vector, dot - by element) for AArch64 AdvSIMD ARMv8.6 Extension

2019-12-13 Thread Richard Sandiford
Stam Markianos-Wright writes: > @@ -573,6 +586,44 @@ >[(set_attr "type" "neon_dot")] > ) > > +;; These instructions map to the __builtins for the armv8.6a I8MM usdot, > sudot > +;; (by element) Dot Product operations. > +(define_insn "aarch64_dot_lane" > + [(set (match_operand:VS 0

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Segher Boessenkool
On Thu, Dec 12, 2019 at 09:32:27AM +, Richard Sandiford wrote: > I doubt it will be long before we deprecate > all targets that require old reload.) Do we wait until GCC 12 (to remove old reload completely)? If not, we should deprecate it now. Segher

Re: Add a compatible_vector_types_p target hook

2019-12-13 Thread Richard Sandiford
Richard Biener writes: The AArch64 port emits an error if calls pass values of SVE type to >>an unprototyped function. To do that we need to know whether the value really is an SVE type rathr than a plain vector. For varags the ABI is the same for 256 bits+. But we'll have

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Segher Boessenkool
On Thu, Dec 12, 2019 at 07:43:58AM +0100, Stefan Franke wrote: > The problems are in the gcc implementation > > - the lra implementation is buggy Patches welcome. Bug reports welcome. "It does not work" does not really help anyone -- you don't even say *what* doesn't work. > - the compare

Re: Add a compatible_vector_types_p target hook

2019-12-13 Thread Richard Sandiford
Richard Biener writes: >>> The frontend are in charge of specifying the actual argument type and >>> at that point the target may fix the ABI. The ABI can be recorded in >>> the calls fntype, either via its TYPE_ARG_TYPES or in more awkward >>> ways for varargs functions (in full generality that

[patch] Fix typo in macro name guarding conditional in vxcrtstuff.c

2019-12-13 Thread Olivier Hainque
Hello, This patch fixes an obvious typo in a macro name used to guard some definitions used later on in vxcrtstuff.c, leading to an unexpected mix of symbols in a vxcrtbegin variant and incorrect behavior for the corresponding mode at run time. Tested in accordance with the description in

Re: [PATCH][AArch64] Fixup core tunings

2019-12-13 Thread Richard Earnshaw (lists)
On 13/12/2019 12:23, Wilco Dijkstra wrote: Several tuning settings in cores.def are not consistent. Set the tuning for Cortex-A76AE and Cortex-A77 to neoversen1 so it is the same as for Cortex-A76 and Neoverse N1. Set the tuning for Neoverse E1 to cortexa73 so it's the same as for Cortex-A65.

[GCC][PATCH][ARM]Add ACLE intrinsics for dot product (vusdot - vector, vdot - by element) for AArch32 AdvSIMD ARMv8.6 Extension

2019-12-13 Thread Stam Markianos-Wright
Hi all, This patch adds the ARMv8.6 Extension ACLE intrinsics for dot product operations (vector/by element) to the ARM back-end. These are: usdot (vector), dot (by element). The functions are optional from ARMv8.2-a as -march=armv8.2-a+i8mm and for ARM they remain optional as of ARMv8.6-a.

Re: [Patch] Add OpenACC 2.6's no_create

2019-12-13 Thread Tobias Burnus
Hi Thomas, regarding your TODO in your test case about implicit mapping of variables, I did some testing. The 'copy' issue is a general feature and not restricted to no_create. Additionally, 'int *arr' is not a real array: as the compiler does not know the size, it cannot distinguish a pointer

[patch] Fix macro reference in gthr-vxworks-tls.c

2019-12-13 Thread Olivier Hainque
This change fixes a typo in a macro name reference, introduced by mistake during a refactoring. Tested in accordance with the description in https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00911.html Committing to mainline. Olivier 2019-12-13 Olivier Hainque libgcc/ *

[patch] Improve VxWorks GTHREAD_ONCE_INIT

2019-12-13 Thread Olivier Hainque
This change improves the GTHREAD_ONCE_INIT initializer exposed by gthr-vxworks.h to use a more standard syntax for a zero-initialization, which fixes build failures observed when activating libstdc++ builds for aarch64-vxworks. Tested in accordance with the description in

[Ada] Implement AI12-0109 (prohibit some "early" derivations)

2019-12-13 Thread Pierre-Marie de Rodat
If a by-reference untagged type has primitive subprograms, then the representations of that type and any type derived from it need to match. This is because passing in a reference to a "change of representation" copy doesn't work for a by-reference type. AI12-0109 is a binding interpretation that

[Ada] Avoid spurious errors on Global/Depends in instantiations

2019-12-13 Thread Pierre-Marie de Rodat
The (Refined_)Global/Depends contracts in SPARK are analyzed by GNAT for possible violations of legality rules. Some of these rules have to do with visibility of refinement at the point where the contract is specified. These rules should not be checked inside generic instantiations, as the

[GCC][PATCH][AArch64]Add ACLE intrinsics for dot product (usdot - vector, dot - by element) for AArch64 AdvSIMD ARMv8.6 Extension

2019-12-13 Thread Stam Markianos-Wright
Hi all, This patch adds the ARMv8.6 Extension ACLE intrinsics for dot product operations (vector/by element) to AArch64. These are: usdot (vector), dot (by element). The functions are optional from ARMv8.2-a as -march=armv8.2-a+i8mm and are then enabled by default from ARMv8.6a. The functions

Re: AW: [PATCH] m68k architecture: support ccmode + lra

2019-12-13 Thread Richard Biener
On December 13, 2019 12:03:30 PM GMT+01:00, Segher Boessenkool wrote: >On Thu, Dec 12, 2019 at 09:32:27AM +, Richard Sandiford wrote: >> I doubt it will be long before we deprecate >> all targets that require old reload.) > >Do we wait until GCC 12 (to remove old reload completely)? If not,

Re: [GCC][testsuite][ARM][AArch64] Add ARM v8.6 effective target checks to target-supports.exp

2019-12-13 Thread Richard Sandiford
Stam Markianos-Wright writes: > Hi all, > > This small patch adds support for the ARM v8.6 extensions +bf16 and > +i8mm to the testsuite. This will be tested through other upcoming > patches, which is why we are not providing any explicit tests here. > > Ok for trunk? > > Also I don't have

[patch] Let libstdc++ know that VxWorks has_nanosleep

2019-12-13 Thread Olivier Hainque
This change adjusts the libstdc++ configuration for VxWorks to set ac_has_nanosleep=yes, which enables the use of nanosleep from the library. While this technically depends on the kernel configuration (INCLUDE_POSIX_TIMERS) this is the normal configuration in all the environments we have been

[PATCH 41/45] analyzer: new files: engine.{cc|h}

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Wrap everything in #if ENABLE_ANALYZER - Remove /// comment lines - Rework logging to avoid exploded_graph multiple-inheritance (moving log_user base to a member) - Support resolving function pointers:

[PATCH 43/45] analyzer: new files: diagnostic-manager.{cc|h}

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Wrap everything in #if ENABLE_ANALYZER - Remove /// comment lines - Add custom events: https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00213.html - Generalize rewind_info_t to exploded_edge::custom_info_t

[PATCH 21/45] analyzer: new files: digraph.{cc|h} and shortest-paths.h

2019-12-13 Thread David Malcolm
Changed in v4: - Moved from gcc/analyzer to gcc, renaming selftests accordingly - Remove comments - Replace auto_client_timevar with TV_ANALYZER_SHORTEST_PATHS This patch adds template classes for directed graphs, their nodes and edges, and for finding the shortest path through such a

[PATCH] Fix pretty printers tests

2019-12-13 Thread François Dumont
Here is a patch to fix prettyprinters.exp failures in normal and debug modes. In 80276.cc I replicate the #define with comment from other tests even if it isn't true that cxx11 abi string isn't supported. It's just that it doesn't appear as 'std::string', the aliasing doesn't work. I still

Re: [PATCH, c] all plattforms: support using a CC_REG instead cc0_rtx

2019-12-13 Thread Segher Boessenkool
Hi! On Fri, Dec 13, 2019 at 05:25:41PM +0100, Stefan Franke wrote: > I suggest this patch to allow architectures do substitute cc0_rtx with a > generated cc register. > > Why? If you are using a cc register plus your architecture as many > instructions which may clobber that cc register, some

[PATCH 12/45] timevar.def: add TVs for analyzer

2019-12-13 Thread David Malcolm
This takes the place of the auto_client_timevar code from v1 of the kit: https://gcc.gnu.org/ml/gcc-patches/2019-11/msg01519.html gcc/ChangeLog: * timevar.def (TV_ANALYZER): New timevar. (TV_ANALYZER_SUPERGRAPH): Likewise. (TV_ANALYZER_STATE_PURGE): Likewise.

[PATCH 09/45] Add diagnostic_metadata and CWE support

2019-12-13 Thread David Malcolm
Changed in v2: fixup for json::number -> json::integer_number change (r277284) https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02027.html This patch adds support for associating a diagnostic with an optional diagnostic_metadata object, so that plugins can add extra data to their diagnostics

[PATCH 08/45] Add -fdiagnostics-nn-line-numbers

2019-12-13 Thread David Malcolm
This patch implements -fdiagnostics-nn-line-numbers, a new option which makes diagnostic_show_locus print "NN" rather than specific line numbers when printing the left margin. This is intended purely to make it easier to write certain kinds of DejaGnu test; various integration tests for

[PATCH 07/45] vec.h: add auto_delete_vec

2019-12-13 Thread David Malcolm
Changed in v4: added DISABLE_COPY_AND_ASSIGN This patch adds a class auto_delete_vec, a subclass of auto_vec that deletes all of its elements on destruction; it's used in many places later in the kit. This is a crude way for a vec to "own" the objects it points to and clean up automatically

[PATCH 03/45] analyzer: user-facing documentation

2019-12-13 Thread David Malcolm
Changed in v4: - Use -fanalyzer rather than --analyzer - Add -W[no-]analyzer-unsafe-call-within-signal-handler gcc/ChangeLog: * doc/invoke.texi ("Static Analyzer Options"): New list and new section. ("Warning Options"): Add static analysis warnings to the list.

[PATCH 01/45] gimple const-correctness fixes

2019-12-13 Thread David Malcolm
This patch converts various "gimple *" to "const gimple *" and similar fixes for gimple subclasses, adding is_a_helper for gimple subclasses to support the const form of as_a, and adding a few "const" overloads of accessors. This is enough to make pp_gimple_stmt_1's stmt const. gcc/ChangeLog:

[PATCH 04/45] analyzer: internal documentation

2019-12-13 Thread David Malcolm
Changed in v4: https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02026.html gcc/ChangeLog: * Makefile.in (TEXI_GCCINT_FILES): Add analyzer.texi. * doc/analyzer.texi: New file. * doc/gccint.texi ("Static Analyzer") New menu item. (analyzer.texi): Include it. ---

[PATCH 05/45] Add pp_write_text_as_html_like_dot_to_stream

2019-12-13 Thread David Malcolm
gcc/ChangeLog: * pretty-print.c (pp_write_text_as_html_like_dot_to_stream): New function. * pretty-print.h (pp_write_text_as_html_like_dot_to_stream): New decl. --- gcc/pretty-print.c | 48 ++ gcc/pretty-print.h | 3 +++ 2 files

[PATCH 13/45] analyzer: changes to configure.ac

2019-12-13 Thread David Malcolm
This patch adds a configuration option to disable building the analyzer. It is built by default (but off by default at compile-time). gcc/ChangeLog: * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option. (gccdepdir): Also create depdir for "analyzer" subdir. ---

[PATCH 06/45] sbitmap.h: add operator const sbitmap & to auto_sbitmap

2019-12-13 Thread David Malcolm
gcc/ChangeLog: * sbitmap.h (auto_sbitmap): Add operator const sbitmap &. --- gcc/sbitmap.h | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/sbitmap.h b/gcc/sbitmap.h index a33175d26f75..3c5b0a47a004 100644 --- a/gcc/sbitmap.h +++ b/gcc/sbitmap.h @@ -295,6 +295,7 @@ public: /*

[PATCH 25/45] analyzer: new files: constraint-manager.{cc|h}

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Wrap everything in #if ENABLE_ANALYZER - Remove /// comment lines This patch adds classes for tracking the equivalence classes and constraints that hold at a point on an execution path. gcc/ChangeLog: *

[PATCH 30/45] analyzer: new file: sm-file.cc

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Wrap everything in #if ENABLE_ANALYZER - Remove /// comment lines - Rework on_leak vfunc: https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02028.html - Rework for changes to is_named_call_p, resolving function

[PATCH 31/45] analyzer: new file: sm-pattern-test.cc

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Wrap everything in #if ENABLE_ANALYZER - Remove /// comment lines - Rework on_leak vfunc: https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02028.html This patch adds a custom state machine checker intended purely

[PATCH 38/45] analyzer: new files: program-state.{cc|h}

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Wrap everything in #if ENABLE_ANALYZER - Remove /// comment lines - Add support for global state: - https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00217.html - Rework logging to avoid exploded_graph

[PATCH 35/45] analyzer: new files: analysis-plan.{cc|h}

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Wrap everything in #if ENABLE_ANALYZER - Use TV_ANALYZER_PLAN rather than an auto_client_timevar. - Update for new param API. - Add DISABLE_COPY_AND_ASSIGN (analysis_plan); This patch adds an analysis_plan class,

[PATCH 33/45] analyzer: new file: sm-signal.cc

2019-12-13 Thread David Malcolm
New in v4; part of: https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00214.html with various fixups gcc/ChangeLog: * analyzer/sm-signal.cc: New file. --- gcc/analyzer/sm-signal.cc | 306 ++ 1 file changed, 306 insertions(+) create mode 100644

[PATCH 17/45] analyzer: command-line options

2019-12-13 Thread David Malcolm
Changed in v4: - Renamed gcc/analyzer/plugin.opt to gcc/analyzer/analyzer.opt - Change option from -analyzer to -fanalyzer, changed it from Driver to Common. - Various commits on 2019-11-12 including r278083 through r278087 reimplemented parameter-handling in terms of options, so that

[PATCH 19/45] analyzer: new file: analyzer-pass.cc and pass registration

2019-12-13 Thread David Malcolm
Changed in v4: - Remove include of gcc-plugin.h, reworking includes accordingly. - Use TV_ANALYZER rather than TV_NONE for the pass - Add a gate function to the pass - Move the check for #if ENABLE_ANALYZER from the driver to the pass's execute vfunc - Expose the pass via make_pass_analyzer,

[PATCH 18/45] analyzer: logging support

2019-12-13 Thread David Malcolm
Changed in v4: - wrap with #if ENABLE_ANALYZER - add DISABLE_COPY_AND_ASSIGN This patch adds a logging framework to the analyzer which handles hierarchical messages (showing the nested structure of the calls). This code is largely based on that in the "jit" subdirectory (with a few changes). An

[PATCH 00/45] v4 of analyzer patch kit

2019-12-13 Thread David Malcolm
Here's an updated version of the patch kit, addressing many issues from review, and squashing in other changes. This is v4, and is relative to r279310 (2019-12-12) Earlier versions: v3: https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00529.html v2:

[PATCH 16/45] analyzer: new builtins

2019-12-13 Thread David Malcolm
gcc/ChangeLog: * builtins.def (BUILT_IN_ANALYZER_BREAK): New builtin. (BUILT_IN_ANALYZER_DUMP): New builtin. (BUILT_IN_ANALYZER_DUMP_EXPLODED_NODES): New builtin. (BUILT_IN_ANALYZER_DUMP_NUM_HEAP_REGIONS): New builtin. (BUILT_IN_ANALYZER_DUMP_PATH): New

  1   2   >