On 4/9/20 2:52 PM, Segher Boessenkool wrote:
> Hi!
>
> On Thu, Apr 02, 2020 at 11:53:47AM -0700, Richard Henderson wrote:
>> The rtl description of signed/unsigned overflow from subtract
>> was fine, as far as it goes -- we have CC_Cmode and CC_Vmode
>> that indicate that only those particular
While cmp (extended register) and cmp (immediate) uses ,
cmp (shifted register) uses . So we can perform cmp xzr, x0.
For ccmp, we only have as an input.
* config/aarch64/aarch64.md (cmp): For operand 0, use
aarch64_reg_or_zero. Shuffle reg/reg to last alternative
and
* config/aarch64/aarch64-modes.def (CC_NV): New.
* config/aarch64/aarch64.c (aarch64_gen_compare_reg): Expand
all of the comparisons for TImode, not just NE.
(aarch64_select_cc_mode): Recognize cmp_carryin.
(aarch64_get_condition_code_1): Handle CC_NVmode.
We are about to use !C in more contexts than add-with-carry.
Choose a more generic name.
* config/aarch64/aarch64-modes.def (CC_NOTC): Rename CC_ADC.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Update.
(aarch64_get_condition_code_1): Likewise.
*
Return the entire comparison expression, not just the cc_reg.
This will allow the routine to adjust the comparison code as
needed for TImode comparisons.
Note that some users were passing e.g. EQ to aarch64_gen_compare_reg
and then using gen_rtx_NE. Pass the proper code in the first place.
In one place we open-code a special case of this pattern into the
more specific sub3_compare1_imm, and miss this special case
in other places. Centralize that special case into an expander.
* config/aarch64/aarch64.md (*sub3_compare1): Rename
from sub3_compare1.
We have been using CCmode, which is not correct for this case.
Mirror the same code from the arm target.
* config/aarch64/aarch64.c (aarch64_select_cc_mode):
Recognize usub*_carryinC patterns.
* config/aarch64/aarch64.md (usubvti4): Use CC_NOTC.
(usub3_carryinC):
Modify aarch64_expand_subvti into a form that handles all
addition and subtraction, modulo, signed or unsigned overflow.
Use expand_insn to put the operands into the proper form,
and do not force values into register if not required.
* config/aarch64/aarch64.c (aarch64_ti_split) New.
These CC_MODEs are identical, merge them into a more generic name.
* config/arm/arm-modes.def (CC_NOTC): New.
(CC_ADC, CC_B): Remove.
* config/arm/arm.c (arm_select_cc_mode): Update to match.
(arm_gen_dicompare_reg): Likewise.
The arm target has some improvements over aarch64 for
double-word arithmetic and comparisons.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Check
for swapped operands to CC_Cmode; check for zero_extend to
CC_ADCmode; check for swapped operands to CC_Vmode.
---
Some implementations have a higher cost for the csel insn
(and its specializations) than they do for adc/sbc.
* config/aarch64/aarch64.md (*cstore_carry): New.
(*cstoresi_carry_uxtw): New.
(*cstore_borrow): New.
(*cstoresi_borrow_uxtw): New.
Rather than duplicating the rather verbose integral test,
pull it out to a predicate.
* config/aarch64/predicates.md (const_dword_umaxp1): New.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Use it.
* config/aarch64/aarch64.md (add*add3_carryinC): Likewise.
This is attacking case 3 of PR 94174.
In v4, I attempt to bring over as many patterns from config/arm
as are applicable. It's not too far away from what I had from v2.
In the process of checking all of the combinations (below), I
discovered that we could probably have a better represenation
for
The expander and insn predicates do not match,
which can lead to insn recognition errors.
* config/aarch64/aarch64.md (add3_carryin):
Use register_operand instead of aarch64_reg_or_zero.
---
gcc/config/aarch64/aarch64.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
This patch updates libgo to the final 1.14.2 release. Bootstrapped
and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
d79a22eddc694970316992927c669dd801e07557
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index b3cc9ecb9d1..138425a19d2 100644
---
In the Go frontend, a composite literal key may not have a global
definition, so Gogo::define_global_names may not see it. In order to
correctly handle the case in which a predeclared identifier is used as
a composite literal key, do an explicit check of the global namespace.
The test case is
Hi!
On Thu, Apr 02, 2020 at 11:53:47AM -0700, Richard Henderson wrote:
> The rtl description of signed/unsigned overflow from subtract
> was fine, as far as it goes -- we have CC_Cmode and CC_Vmode
> that indicate that only those particular bits are valid.
>
> However, it's not clear how to
Here due to my recent change to store_init_value we were expanding the
initializer of aw knowing that we were initializing aw. When
cxx_eval_call_expression finished the constructor, it wanted to look up the
value of aw to set TREE_READONLY on it, but we haven't set DECL_INITIAL yet,
so
LWG 3324 changed the [cmp.alg] types to use std::compare_three_way
instead of the <=> operator, but we were still using the old
specification. In order to make the existing tests pass the N::X type
needs to be equality comparable, so that three_way_comparable is
satisfied and compare_three_way can
Some target C libraries that aren't recognized as freestanding don't
have filesystem support, so calling tmpnam, fopen/open and
remove/unlink fails to link.
This patch introduces a tmpnam effective target to the testsuite, and
requires it in the tests that call tmpnam.
Tested on
On 09/04/20 17:00 -0400, Marek Polacek wrote:
In C++20 this is well-formed:
using T = int[2];
T t(1, 2);
which means that std::is_constructible_v should be true.
But constructible_expr immediately returned the error_mark_node when it
saw a list with more than one element. To give accurate
In C++20 this is well-formed:
using T = int[2];
T t(1, 2);
which means that std::is_constructible_v should be true.
But constructible_expr immediately returned the error_mark_node when it
saw a list with more than one element. To give accurate results in
C++20, we have to try initializing
Tobias,
Thanks very much for the review.
On Thu, Apr 9, 2020 at 5:21 AM Tobias Burnus wrote:
>
> Hi,
>
> On 4/6/20 7:25 PM, Fritz Reese via Fortran wrote:
>
> > The attached patch fixes PR 87923 while also simplifying the code in
> > io.c.
>
> Thanks for the work, which looks great; it is a bit
Hi Jakub,
On Thu, 9 Apr 2020 at 17:06, Richard Biener wrote:
>
> On Thu, 9 Apr 2020, Alexandre Oliva wrote:
>
> > On Apr 9, 2020, Jakub Jelinek wrote:
> >
> > > 2020-04-09 Jakub Jelinek
> >
> > > PR debug/94495
> > > * cselib.h (cselib_record_sp_cfa_base_equiv,
> > >
On 4/9/20 1:32 PM, Jason Merrill wrote:
On 4/9/20 3:24 PM, Martin Sebor wrote:
On 4/9/20 1:03 PM, Jason Merrill wrote:
On 4/8/20 1:23 PM, Martin Sebor wrote:
On 4/7/20 3:36 PM, Marek Polacek wrote:
On Tue, Apr 07, 2020 at 02:46:52PM -0600, Martin Sebor wrote:
On 4/7/20 1:50 PM, Marek
Some more C++20 changes from P1614R2, "The Mothership has Landed".
This includes the proposed resolution for LWG 3426 to fix the three-way
comparison with nullptr_t.
The existing tests for unique_ptr comparisons don't actually check the
results, only that the expressions compile and are
The attached patch fixes an ICE in rtl_verify_fallthru, at cfgrtl.c:2970
gcc.c-torture/execute/20071210-1.c for -mcpu=msp430 at -O2
and above.
The epilogue_helper insn was treated as a regular insn which will
fallthru, so when a barrier is emitted after it, RTL verification failed
as
On Thu, 9 Apr 2020, Jason Merrill wrote:
> On 4/8/20 7:49 PM, Patrick Palka wrote:
> > When evaluating the initializer of 'a' in the following example
> >
> >struct A { A *p = this; };
> >constexpr A foo() { return {}; }
> >constexpr A a = foo();
> >
> > the PLACEHOLDER_EXPR for
On 4/9/20 3:24 PM, Martin Sebor wrote:
On 4/9/20 1:03 PM, Jason Merrill wrote:
On 4/8/20 1:23 PM, Martin Sebor wrote:
On 4/7/20 3:36 PM, Marek Polacek wrote:
On Tue, Apr 07, 2020 at 02:46:52PM -0600, Martin Sebor wrote:
On 4/7/20 1:50 PM, Marek Polacek wrote:
On Tue, Apr 07, 2020 at
On 4/8/20 7:49 PM, Patrick Palka wrote:
When evaluating the initializer of 'a' in the following example
struct A { A *p = this; };
constexpr A foo() { return {}; }
constexpr A a = foo();
the PLACEHOLDER_EXPR for 'this' in the aggregate initializer returned by foo
gets resolved to the
On 4/9/20 1:03 PM, Jason Merrill wrote:
On 4/8/20 1:23 PM, Martin Sebor wrote:
On 4/7/20 3:36 PM, Marek Polacek wrote:
On Tue, Apr 07, 2020 at 02:46:52PM -0600, Martin Sebor wrote:
On 4/7/20 1:50 PM, Marek Polacek wrote:
On Tue, Apr 07, 2020 at 12:50:48PM -0600, Martin Sebor via
Gcc-patches
On 4/8/20 1:23 PM, Martin Sebor wrote:
On 4/7/20 3:36 PM, Marek Polacek wrote:
On Tue, Apr 07, 2020 at 02:46:52PM -0600, Martin Sebor wrote:
On 4/7/20 1:50 PM, Marek Polacek wrote:
On Tue, Apr 07, 2020 at 12:50:48PM -0600, Martin Sebor via
Gcc-patches wrote:
Among the numerous regressions
Hi,
PR 93621 testcase makes redirect_call_stmt_to_callee wrongly assume
that a call statement needs redirecting but then rightly fails an
assert ensuring the call statement parameters have not already been
adjusted because they were already created adjusted as part of thunk
expansion.
The test
Hi,
On Tue, Apr 07 2020, bule wrote:
> Hi,
>
> The patch is tested and works fine. It is more appropriate to handle
> the context by considering it as a section of assemble code.
>
> A minor question is that I think svst functions are for store
>operations. Why pass ISRA_CTX_LOAD to
Hi,
On Mon, Apr 06 2020, Jakub Jelinek wrote:
> On Fri, Apr 03, 2020 at 12:43:42PM +0200, Tobias Burnus wrote:
>> HSA: omp-grid.c – access proper clause code
>>
>> * omp-grid.c (grid_eliminate_combined_simd_part): Use
>> OMP_CLAUSE_CODE to access the omp clause code.
>>
>> diff --git
On 4/9/20 1:05 AM, Martin Liška wrote:
Hi.
We've got one another sneaky test-case (thank you Marc ;) ):
$ cat pr94314-array.C
#include
#include
int count = 0;
__attribute__((malloc, noinline)) void* operator new[](unsigned long sz) {
++count;
return ::operator new(sz);
}
void
As per $SUBJECT
This seemed to flow more naturally if we organised things as:
- improvements to existing features
- new options
- new extensions
- new CPUs
The patch also fixes up some missing tags flagged by xmllint.
Pushed.
---
htdocs/gcc-10/changes.html | 100
Hi!
On Thu, Apr 09, 2020 at 10:11:48AM -0500, will schmidt wrote:
> This patch matches almost identically with what went into
> Mainline. Exception to identical are two parts;
> 1 - A constraint change "v"/"wk" that exists in 9 versus
> mainline, (ok)
> 2 - The testcase changes, which are
It's more convenient for a later patch if sizelessness is represented
separately from "SVEness". "SVEness" is an ABI property that carries
forward into gimple and beyond, and continues to matter during LTO.
Sizelessness is just a frontend restriction and can be ignored after
that.
Tested on
Hi,
This is yet another old option that would have been somewhat useful back
before the D front-end implementation was able to support compiling
without the Druntime library.
Now however, -fno-druntime makes the gcstub package redundant, so the
option has been removed, along with the package
On Thu, 2020-04-09 at 05:16 -0400, Michael Meissner via Gcc-patches
wrote:
> Backport PR target/93932 (variable vec_extract) to GCC 9
>
> This patch backports the fix for PR target/93932 from the current
> master branch
> to GCC 9. The patch for the master branch had to be adjusted due to
>
On Thu, 9 Apr 2020, Alexandre Oliva wrote:
> On Apr 9, 2020, Jakub Jelinek wrote:
>
> > 2020-04-09 Jakub Jelinek
>
> > PR debug/94495
> > * cselib.h (cselib_record_sp_cfa_base_equiv,
> > cselib_sp_derived_value_p): Declare.
> > * cselib.c (cselib_record_sp_cfa_base_equiv,
>
On Apr 9, 2020, Jakub Jelinek wrote:
> 2020-04-09 Jakub Jelinek
> PR debug/94495
> * cselib.h (cselib_record_sp_cfa_base_equiv,
> cselib_sp_derived_value_p): Declare.
> * cselib.c (cselib_record_sp_cfa_base_equiv,
> cselib_sp_derived_value_p): New functions.
>
> -Original Message-
> From: Matthew Malcomson
> Sent: 09 April 2020 15:31
> To: gcc-patches@gcc.gnu.org
> Cc: nd ; Ramana Radhakrishnan
> ; Kyrylo Tkachov
> ; Richard Earnshaw
> ; ni...@redhat.com
> Subject: [Arm] Allow the use of arm_cde.h for C++
>
> arm_cde.h includes the
On Thu, 2020-04-09 at 15:36 +0100, Maciej W. Rozycki wrote:
> On Thu, 9 Apr 2020, Jeff Law wrote:
>
> > > > Match GCC commit bfe78b08471f ("RISC-V: Using fmv.x.w/fmv.w.x rather
> > > > than fmv.x.s/fmv.s.x") and commit 879bc686a0aa ("doc: RISC-V: Update
> > > > binutils requirement to 2.30").
>
On Thu, 9 Apr 2020, Jeff Law wrote:
> > > Match GCC commit bfe78b08471f ("RISC-V: Using fmv.x.w/fmv.w.x rather
> > > than fmv.x.s/fmv.s.x") and commit 879bc686a0aa ("doc: RISC-V: Update
> > > binutils requirement to 2.30").
> >
> > Ping for:
> >
> >
arm_cde.h includes the arm_mve_types.h header, which declares some C++
overloaded functions.
There is a superfluous `extern "C"` statement in arm_cde.h, which
encompasses these functions. This means that if compiling for C++, the
overloaded functions are declared, but are declared without name
Hi!
On the https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94495#c5
testcase GCC emits worse debug info after the PR92264 cselib.c
changes.
The difference at -O2 -g -dA in the assembly is (when ignoring debug info):
# DEBUG g => [argp]
# DEBUG k => [argp+0x20]
# DEBUG j =>
With -mbranch-protection=pac-ret the debug info toggles the
signedness state of the return address so the unwinder knows when
the return address needs pointer authentication.
The unwind context flags were not updated according to the dwarf
frame info.
This causes unwinding across frames that
On aarch64 -mbranch-protection=pac-ret reuses the dwarf
opcode for window_save to mean "toggle the return address
mangle state", but in the dwarf2cfi internal logic the
state was not properly recorded so the remember/restore
logic was broken.
This can cause the unwinder not to authenticate return
On 09/04/2020 12:02, Matthias Klose wrote:
> On 4/9/20 12:47 AM, Iain Buclaw via Gcc-patches wrote:
>> Hi,
>>
>> As GDCFLAGS is overriden by the top-level make file with '-O2 -g',
>> libphobos ends up always being built with all contracts, invariants, and
>> asserts compiled in. This adds a new
On Thu, 2020-04-09 at 14:42 +0100, Maciej W. Rozycki via Gcc-patches wrote:
> On Thu, 2 Apr 2020, Maciej W. Rozycki wrote:
>
> > Match GCC commit bfe78b08471f ("RISC-V: Using fmv.x.w/fmv.w.x rather
> > than fmv.x.s/fmv.s.x") and commit 879bc686a0aa ("doc: RISC-V: Update
> > binutils requirement
Andrew,
On 09.4.2020 00:50 , Andrew Pinski wrote:
On Wed, Apr 8, 2020 at 11:06 AM Anton Youdkevitch
wrote:
Here is the patch introducing thunderxt311 maching model
for the scheduler. A name for the new chip was added to the
list of the names to be recognized as a valid parameter for mcpu
and
On Thu, 2 Apr 2020, Maciej W. Rozycki wrote:
> Match GCC commit bfe78b08471f ("RISC-V: Using fmv.x.w/fmv.w.x rather
> than fmv.x.s/fmv.s.x") and commit 879bc686a0aa ("doc: RISC-V: Update
> binutils requirement to 2.30").
Ping for:
Hi,
in GCC 8 we changed -fprofile-generate= to use mangled absolute paths in
the directory. This was necessary to avoid clashes of files when gcc is
executed from different directories to build different sources of same
filename.
However this made it difficult to build projects on setups where
Hi,
this patch avoid failure of alias-4_0.C testcase. The testcase is
testing that ODR TBAA works but structure used conflicts with builtin
va_arg type on ARM which disables TBAA for it.
Better fix would be to make va_arg types with mangled names in
lto1 frontend but that require some extra work,
The testcase contains an ODR violation and thus the observed
link failure is an accepted outcome (it originally was for
an ICE during WPA). Thus the following adds -shared to the link.
Pushed.
2020-04-09 Richard Biener
PR testsuite/93369
* g++.dg/lto/pr64076_0.C: Add
Hi all,
We logically grouped the aarch64 and arm entries as they share some content but
then the alphabetic order came in and put amdgcn and arc between the two.
I'm taking the liberty of moving arm under aarch64 and adding a small
clarification
that the recently added CDE intrinsics implement a
Christophe Lyon writes:
> On Wed, 8 Apr 2020 at 11:48, Richard Sandiford
> wrote:
>>
>> Christophe Lyon via Gcc-patches writes:
>> > Hi,
>> >
>> > While checking Martin's fix for PR ipa/94445, he made me realize that
>> > the cmse-15.c testcase still fails at -Os because ICF means that we
>> >
On 4/9/20 12:47 AM, Iain Buclaw via Gcc-patches wrote:
> Hi,
>
> As GDCFLAGS is overriden by the top-level make file with '-O2 -g',
> libphobos ends up always being built with all contracts, invariants, and
> asserts compiled in. This adds a new configurable that defaults to omit
> compiling any
Hi Richard:
> Please skip vars with DECL_USER_ALIGN.
I was consider to skip DECL_USER_ALIGN,
but Jakub think it shouldn't skip in other patch review[1] (related to
this patch),
because it's minimum alignment not restricted alignment[2]
[1]
Hi,
On 4/6/20 7:25 PM, Fritz Reese via Fortran wrote:
The attached patch fixes PR 87923 while also simplifying the code in
io.c.
Thanks for the work, which looks great; it is a bit lengthy
but mostly moving code or mechanical (%C → %L).
It also has an impressive amount of new test cases!
I
Backport PR target/93932 (variable vec_extract) to GCC 9
This patch backports the fix for PR target/93932 from the current master branch
to GCC 9. The patch for the master branch had to be adjusted due to using
different constraints (GCC 10 uses the enabled attribute to eliminate
alternatives,
Hi all,
Second version of the patch for PR94530 (pr num fixed) addressing
comments.
Bootstrapped on aarch64-unknown-linux-gnu.
Committed.
Andrea
gcc/ChangeLog
2020-04-09 Andrea Corallo
PR target/pr94530
* config/aarch64/falkor-tag-collision-avoidance.c
On Thu, 9 Apr 2020 at 09:05, Marc Glisse wrote:
> Note that the matching is not 1-to-1. Array vs non-array and
> aligned vs non-aligned seem important, but sized and unsized delete can
> both match the same new, IIUC.
Right.
> Not sure about the nothrow versions...
This is valid, and mixes the
On Thu, 9 Apr 2020, Richard Biener wrote:
On Thu, Apr 9, 2020 at 7:06 AM Martin Liška wrote:
Hi.
We've got one another sneaky test-case (thank you Marc ;) ):
$ cat pr94314-array.C
#include
#include
int count = 0;
__attribute__((malloc, noinline)) void* operator new[](unsigned long sz)
On Thu, Apr 09, 2020 at 08:59:59AM +0200, Martin Liška wrote:
> What do you mean by 'decl flags'. We can't compare ASM names as one is ctor
> and the second one is dtor. It's about argument types that much match, right?
You can't disginguish the [] vs. non-[] from arguments, plus there are some
Kyrylo Tkachov writes:
> diff --git a/gcc/config/aarch64/falkor-tag-collision-avoidance.c
> b/gcc/config/aarch64/falkor-tag-collision-avoidance.c
> index 719df484ee61..4e07a43282f7 100644
> --- a/gcc/config/aarch64/falkor-tag-collision-avoidance.c
> +++
On Wed, Apr 8, 2020 at 7:13 PM Kito Cheng wrote:
>
> ping
>
> On Tue, Mar 31, 2020 at 4:33 PM Kito Cheng wrote:
> >
> > - The alignment for local variable was adjust during
> > estimate_stack_frame_size,
> >however it seems wrong spot to adjust that, expand phase will adjust that
> >
Richard Sandiford writes:
> Andrea Corallo writes:
>> Hi all,
>>
>> I'd like to submit this for PR48240.
>>
>> Bootstrapped on aarch64-unknown-linux-gnu.
>> Okay for trunk when finished with regression?
>
> OK, but the PR number looks like a typo. Also:
Ooops, no idea how did I managed to
On Thu, Apr 9, 2020 at 9:00 AM Martin Liška wrote:
>
> On 4/9/20 8:45 AM, Richard Biener wrote:
> > On Thu, Apr 9, 2020 at 7:06 AM Martin Liška wrote:
> >>
> >> Hi.
> >>
> >> We've got one another sneaky test-case (thank you Marc ;) ):
> >>
> >> $ cat pr94314-array.C
> >> #include
> >> #include
On 4/9/20 8:45 AM, Richard Biener wrote:
On Thu, Apr 9, 2020 at 7:06 AM Martin Liška wrote:
Hi.
We've got one another sneaky test-case (thank you Marc ;) ):
$ cat pr94314-array.C
#include
#include
int count = 0;
__attribute__((malloc, noinline)) void* operator new[](unsigned long sz) {
On Thu, Apr 9, 2020 at 7:06 AM Martin Liška wrote:
>
> Hi.
>
> We've got one another sneaky test-case (thank you Marc ;) ):
>
> $ cat pr94314-array.C
> #include
> #include
>
> int count = 0;
>
> __attribute__((malloc, noinline)) void* operator new[](unsigned long sz) {
>++count;
>return
On Thu, Apr 9, 2020 at 4:23 AM bin.cheng wrote:
>
> --
> Sender:Richard Biener
> Sent At:2020 Mar. 20 (Fri.) 18:12
> Recipient:bin.cheng
> Cc:Andrew Pinski ; GCC Patches
> Subject:Re: [PATCH PR93674]Avoid introducing IV of
74 matches
Mail list logo