[Bug gcov-profile/91601] [9/10 Regression] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601 --- Comment #9 from Martin Liška --- Author: marxin Date: Mon Sep 2 07:06:54 2019 New Revision: 275291 URL: https://gcc.gnu.org/viewcvs?rev=275291&root=gcc&view=rev Log: Consider also negative edges in cycle detection. 2019-09-02 Martin Liska PR gcov-profile/91601 * gcov.c (path_contains_zero_cycle_arc): Rename to ... (path_contains_zero_or_negative_cycle_arc): ... this and handle also negative edges. (circuit): Handle also negative edges as they can happen in some situations. Modified: trunk/gcc/ChangeLog trunk/gcc/gcov.c
[Bug c++/91155] [9/10 Regression] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155 --- Comment #6 from Martin Liška --- Author: marxin Date: Mon Sep 2 07:07:11 2019 New Revision: 275292 URL: https://gcc.gnu.org/viewcvs?rev=275292&root=gcc&view=rev Log: Use cxx_printable_name for __PRETTY_FUNCTION__ in cp_fname_init. 2019-09-02 Martin Liska PR c++/91155 * c-common.c (fname_as_string): Use cxx_printable_name for __PRETTY_FUNCTION__ same as was used before r265711. 2019-09-02 Martin Liska PR c++/91155 * g++.dg/torture/pr91155.C: New test. Added: trunk/gcc/testsuite/g++.dg/torture/pr91155.C Modified: trunk/gcc/c-family/ChangeLog trunk/gcc/cp/decl.c trunk/gcc/testsuite/ChangeLog
[Bug c++/91155] [9 Regression] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155 Martin Liška changed: What|Removed |Added Known to work||10.0 Summary|[9/10 Regression] |[9 Regression] |__PRETTY_FUNCTION__ gets|__PRETTY_FUNCTION__ gets |truncated when char |truncated when char |template parameter is '\0' |template parameter is '\0' Known to fail|10.0| --- Comment #7 from Martin Liška --- Fixed on trunk so far.
[Bug gcov-profile/91601] [9/10 Regression] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601 Martin Liška changed: What|Removed |Added Known to work||10.0 Known to fail|10.0| --- Comment #10 from Martin Liška --- Fixed on trunk so far.
[Bug testsuite/91619] New test case gcc.dg/vect/pr81740-2.c fails on powerpc64 power7 BE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91619 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2019-09-02 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Richard Biener --- Ah, the 9 branch has /* { dg-require-effective-target vect_hw_misalign } */ will fix.
[Bug testsuite/91619] New test case gcc.dg/vect/pr81740-2.c fails on powerpc64 power7 BE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91619 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #2 from Richard Biener --- Fixed.
[Bug testsuite/91619] New test case gcc.dg/vect/pr81740-2.c fails on powerpc64 power7 BE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91619 --- Comment #3 from Richard Biener --- Author: rguenth Date: Mon Sep 2 07:12:11 2019 New Revision: 275294 URL: https://gcc.gnu.org/viewcvs?rev=275294&root=gcc&view=rev Log: 2019-09-02 Richard Biener PR testsuite/91619 * gcc.dg/vect/pr81740-2.c: Restrict to vect_hw_misalign. Modified: branches/gcc-8-branch/gcc/testsuite/ChangeLog branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr81740-2.c
[Bug d/91628] libdruntime uses glibc internal symbol on s390
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91628 --- Comment #3 from Iain Buclaw --- The use of the function is for the garbage collector to be able to scan native TLS data. The logic of said function pretty much matches what the glibc macro __TLS_GET_ADDR is doing.
[Bug d/91628] libdruntime uses glibc internal symbol on s390
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91628 --- Comment #4 from Florian Weimer --- (In reply to Iain Buclaw from comment #3) > The use of the function is for the garbage collector to be able to scan > native TLS data. > > The logic of said function pretty much matches what the glibc macro > __TLS_GET_ADDR is doing. But you can use __tls_get_addr on other architectures, right? I think for s390 and s390x, you should implement you own version of __tls_get_addr (under a different/hidden name, of course) which is based on __tls_get_offset, which is the official interface for this.
[Bug d/91628] libdruntime uses glibc internal symbol on s390
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91628 --- Comment #5 from Iain Buclaw --- (In reply to Florian Weimer from comment #4) > (In reply to Iain Buclaw from comment #3) > > The use of the function is for the garbage collector to be able to scan > > native TLS data. > > > > The logic of said function pretty much matches what the glibc macro > > __TLS_GET_ADDR is doing. > > But you can use __tls_get_addr on other architectures, right? > That is correct. I'll link the offending code for reference. http://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libphobos/libdruntime/gcc/sections/elf_shared.d;h=7f9036bf5052861960f8a1d4a20838437c5c519c;hb=refs/heads/trunk#l1030 > I think for s390 and s390x, you should implement you own version of > __tls_get_addr (under a different/hidden name, of course) which is based on > __tls_get_offset, which is the official interface for this. Would it be possible to infer the base address of the TLS range doing that though?
[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 --- Comment #15 from rguenther at suse dot de --- On Sat, 31 Aug 2019, ebotcazou at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 > > Eric Botcazou changed: > >What|Removed |Added > > CC||ebotcazou at gcc dot gnu.org > > --- Comment #14 from Eric Botcazou --- > The test fails on SPARC too because it was aligned with the x86. We really > need to make a global decision about LTGT, otherwise we should keep the status > quo and revert the x86 change. But the status qou is broken as can be seen in this PR. We can of course fix conservatively on the folding side (basically think of LTGT as having "both" behaviors which I guess should make it simply unused, and thus we should simply remove LTGT_EXPR). Other than that my view is that the GENERIC/GIMPLE side is correct. Besides even RTL "high-level" get's this consistent (may_trap_p_1), likewise simplify-rtx if my quick survey is correct. So IMHO siding with the non-target interpretation feels quite natural to me. rtl.texi has no entry for LTGT and both tree.def and rtl.def agree. The only disagreeing part is LTGT_EXPR in generic.texi which is "fuzzy" (says unordered but then "With the possible exception of @code{LTGT_EXPR}, all of these operations are guaranteed not to generate a floating point exception." So even that can be read as "agreement".
[Bug d/91628] libdruntime uses glibc internal symbol on s390
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91628 --- Comment #6 from Florian Weimer --- __tls_get_offset looks like this: __tls_get_offset: la %r2,0(%r2,%r12) jg __tls_get_addr The caller should be able to prepare for the la instruction, by subtracting r12 from r2. (Not sure whose r12 this, and if it's modified by the PLT code. If it is, things could get tricky.)
[Bug tree-optimization/81740] [7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81740 Christophe Lyon changed: What|Removed |Added CC||clyon at gcc dot gnu.org --- Comment #12 from Christophe Lyon --- > Added: > branches/gcc-8-branch/gcc/testsuite/gcc.dg/tree-ssa/pr89725.c > branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c > branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr81740-1.c > branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr81740-2.c Hi Richard, I think you need to backport r269978: 2019-03-27 Bill Schmidt * gcc.dg/vect/pr81740-2.c: Require vect_hw_misalign. (FWIW I see this test failing on armeb, while it is unsupported on trunk)
[Bug tree-optimization/91632] New: [10 Regression] Probably wrong code since r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91632 Bug ID: 91632 Summary: [10 Regression] Probably wrong code since r275026 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- Since the revision, I see postgres11 teste-suite failing. There's a reduced test-case: $ cat url.c static int __attribute__((noipa)) p_isurlchar(char ch) { if (ch <= 0x20 || ch >= 0x7F) return 0; /* reject characters disallowed by RFC 3986 */ switch (ch) { case '"': case '<': case '>': case '\\': case '^': case '`': case '{': case '|': case '}': return 0; } return 1; } int main() { const char *url = "http://aew.werc.ewr/?ad=qwe&dw";; int r = p_isurlchar (url[0]); __builtin_printf ("is_url: '%c': %d\n", url[0], r); if (r == 0) __builtin_abort (); return 0; } $ gcc /tmp/url.c -O2 -fwrapv && ./a.out is_url: 'h': 0 Aborted (core dumped) $ gcc /tmp/url.c -fwrapv && ./a.out is_url: 'h': 1
[Bug tree-optimization/91632] [10 Regression] Probably wrong code since r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91632 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2019-09-02 Known to work||9.2.0 Target Milestone|--- |10.0 Ever confirmed|0 |1 Known to fail||10.0
[Bug target/91612] [10 regression][arm] gcc.target/arm/aapcs/align4.c ICE after r274986
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91612 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0
[Bug target/91613] [10 regression][arm] gcc.dg/pr83930.c ICE since r274986
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91613 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0
[Bug target/91614] [10 regression][arm] gcc.target/arm/unaligned-memcpy-2.c FAIL since r274986
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91614 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0
[Bug target/91615] [10 regression][armeb] ICEs since r274986
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91615 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0
[Bug go/91617] [10 regression] Many go test case failures after r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0
[Bug middle-end/91623] [7/8/9 Regression] -msse4.1 -O3 segfault in /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/smmintrin.h:270:10
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91623 --- Comment #7 from Richard Biener --- (In reply to Marc Glisse from comment #6) > For the missed constant folding, it seems that we end up in fold_vec_perm, > with type a vector of "long long", while arg0 and arg1 are vectors of > "long", and we give up because of the early check "TREE_TYPE (TREE_TYPE > (arg0)) != TREE_TYPE (type)". I don't know if the check should be relaxed, > or if the bug is earlier and we shouldn't have reached this place with such > different types... It's GENERIC type restrictions vs. GIMPLE ones and folding should be relaxed here.
[Bug go/91617] [10 regression] Many go test case failures after r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617 --- Comment #4 from Jakub Jelinek --- Author: jakub Date: Mon Sep 2 08:38:13 2019 New Revision: 275299 URL: https://gcc.gnu.org/viewcvs?rev=275299&root=gcc&view=rev Log: PR go/91617 * fold-const.c (range_check_type): For enumeral and boolean type, pass 1 to type_for_size langhook instead of TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever etype isn't TYPE_UNSIGNED INTEGER_TYPE. (build_range_check): Don't call unsigned_type_for for pointer types. * match.pd (X / C1 op C2): Don't call unsigned_type_for on range_check_type result. Modified: trunk/gcc/ChangeLog trunk/gcc/fold-const.c trunk/gcc/match.pd
[Bug lto/91626] [9/10 Regression] FAIL: gcc.dg/lto/pr48622 c_lto_pr48622_0.o-c_lto_pr48622_0.o link, -O -flto -finline-small-functions -fno-early-inlining
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91626 Richard Biener changed: What|Removed |Added Target Milestone|--- |9.3
[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 --- Comment #16 from Eric Botcazou --- > Other than that my view is that the GENERIC/GIMPLE side is correct. > Besides even RTL "high-level" get's this consistent (may_trap_p_1), > likewise simplify-rtx if my quick survey is correct. Yes, the RTL middle-end indeed says that LTGT signals on NaNs. > So IMHO siding with the non-target interpretation feels quite > natural to me. rtl.texi has no entry for LTGT and both tree.def > and rtl.def agree. IMO that's less clear for rtl.def: /* This is an ordered NE, ie !UNEQ, ie false for NaN. */ Do you read "ordered" as "signaling on NaNs"? Then what about EQ? And even less clear for tree.def: /* This is the reverse of uneq_expr. */ > The only disagreeing part is LTGT_EXPR in generic.texi which is "fuzzy" (says > unordered but then "With the possible exception of @code{LTGT_EXPR}, all of > these operations are guaranteed not to generate a floating point exception." > So even that can be read as "agreement". IMO it's just aligned with rtl.def/tree.def, i.e. it doesn't really take side. So we need to modify rtl.def, tree.def and generic.texi to clearly state that LTGT signals on NaNs, like GE/GT/LE/LT. And actually fix generic.texi because LTGT_EXPR is *not* an unordered comparison operator: as rtl.def says, it's the ordered NE, i.e. it returns false for NaNs.
[Bug go/91617] [10 regression] Many go test case failures after r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Assignee|ian at airs dot com|jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek --- Should be fixed now.
[Bug tree-optimization/91616] Incorrect data address computation in very simple code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91616 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2019-09-02 Ever confirmed|0 |1 --- Comment #2 from Richard Biener --- I don't see anything "incorrect" either - GCC optimizes this down to the single IV 'seed', eliding 'i' by expressing data_array[i] in terms of 'seed': [local count: 955630224]: # seed_14 = PHI <14627338366734941935(2), seed_7(3)> seed_7 = seed_14 + 1; MEM[symbol: data_array, index: seed_7, step: 8, offset: -633824249165792B] = seed_14; if (seed_7 != 14627338366734941951) goto ; [89.00%]
[Bug gcov-profile/91601] [9 Regression] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601 --- Comment #11 from Martin Liška --- Author: marxin Date: Mon Sep 2 08:58:17 2019 New Revision: 275301 URL: https://gcc.gnu.org/viewcvs?rev=275301&root=gcc&view=rev Log: Backport r275291 2019-09-02 Martin Liska Backport from mainline 2019-09-02 Martin Liska PR gcov-profile/91601 * gcov.c (path_contains_zero_cycle_arc): Rename to ... (path_contains_zero_or_negative_cycle_arc): ... this and handle also negative edges. (circuit): Handle also negative edges as they can happen in some situations. Modified: branches/gcc-9-branch/gcc/ChangeLog branches/gcc-9-branch/gcc/gcov.c
[Bug c/91633] New: Why -funroll-loops affect code without loop.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91633 Bug ID: 91633 Summary: Why -funroll-loops affect code without loop. Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: crazylht at gmail dot com CC: hjl.tools at gmail dot com, skpgkp2 at gmail dot com Target Milestone: --- Target: i386, x86-64 This testcase is cut from 538.exchange_r in SPEC2017. --- typedef struct pixel{ float red; float green; float blue; }pixel; typedef struct pixel2{ unsigned short red; unsigned short green; unsigned short blue; }pixel2; extern double* p; int foo (pixel* a, pixel2* b) { double ret = (a->red-b->red) * (a->red-b->red) + (a->green-b->green) * (a->green-b->green) + (a->blue-b->blue) * (a->blue-b->blue); if (ret <= *p) return 1; return 0; } --- It is supposed -funroll-loops wouldn't affect code generation, but currently it's not, refer to https://godbolt.org/z/6hvQC7. What i got in function process_options in toplev.c: if (flag_rename_registers == AUTODETECT_VALUE) flag_rename_registers = flag_unroll_loops; Also note pass rnreg will affect sched2.
[Bug c++/91155] [9 Regression] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155 --- Comment #8 from Martin Liška --- Author: marxin Date: Mon Sep 2 08:58:39 2019 New Revision: 275302 URL: https://gcc.gnu.org/viewcvs?rev=275302&root=gcc&view=rev Log: Backport r275292 2019-09-02 Martin Liska Backport from mainline 2019-09-02 Martin Liska PR c++/91155 * c-common.c (fname_as_string): Use cxx_printable_name for __PRETTY_FUNCTION__ same as was used before r265711. 2019-09-02 Martin Liska Backport from mainline 2019-09-02 Martin Liska PR c++/91155 * g++.dg/torture/pr91155.C: New test. Added: branches/gcc-9-branch/gcc/testsuite/g++.dg/torture/pr91155.C Modified: branches/gcc-9-branch/gcc/c-family/ChangeLog branches/gcc-9-branch/gcc/cp/decl.c branches/gcc-9-branch/gcc/testsuite/ChangeLog
[Bug gcov-profile/91601] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601 Martin Liška changed: What|Removed |Added Status|ASSIGNED|SUSPENDED Known to work||9.2.0 Summary|[9 Regression] gcov: ICE in |gcov: ICE in handle_cycle, |handle_cycle, at gcov.c:699 |at gcov.c:699 happen which |happen which get code |get code coverage with |coverage with lcov. |lcov. Known to fail|9.2.0 | --- Comment #12 from Martin Liška --- Fixed on all active branches.
[Bug gcov-profile/91601] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601 Martin Liška changed: What|Removed |Added Status|SUSPENDED |RESOLVED Resolution|--- |FIXED
[Bug c++/91155] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155 Martin Liška changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||9.2.0 Resolution|--- |FIXED Summary|[9 Regression] |__PRETTY_FUNCTION__ gets |__PRETTY_FUNCTION__ gets|truncated when char |truncated when char |template parameter is '\0' |template parameter is '\0' | Known to fail|9.1.0 | --- Comment #9 from Martin Liška --- Fixed on all active branches.
[Bug middle-end/91633] Why -funroll-loops affect code without loop.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91633 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Component|c |middle-end Resolution|--- |INVALID --- Comment #1 from Andrew Pinski --- From the documentation: >-funroll-loops implies -frerun-cse-after-loop, -fweb and -frename-registers. So there is no bug here.
[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 --- Comment #17 from Eric Botcazou --- Created attachment 46797 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46797&action=edit Proposed wording change
[Bug target/91634] New: [10 Regression] 508.namd_r (and 435.gromacs) speed regression after r274994
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91634 Bug ID: 91634 Summary: [10 Regression] 508.namd_r (and 435.gromacs) speed regression after r274994 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: uros at gcc dot gnu.org Blocks: 26163 Target Milestone: --- Host: x86_64-linux-gnu After the revision I see quite some regressions on -march=skylake: https://lnt.opensuse.org/db_default/v4/SPEC/graph?plot.0=28.447.0&plot.1=7.90.0 Similarly with different tuning options. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 [Bug 26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)
[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 --- Comment #18 from rguenther at suse dot de --- On Mon, 2 Sep 2019, ebotcazou at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 > > --- Comment #16 from Eric Botcazou --- > > Other than that my view is that the GENERIC/GIMPLE side is correct. > > Besides even RTL "high-level" get's this consistent (may_trap_p_1), > > likewise simplify-rtx if my quick survey is correct. > > Yes, the RTL middle-end indeed says that LTGT signals on NaNs. > > > So IMHO siding with the non-target interpretation feels quite > > natural to me. rtl.texi has no entry for LTGT and both tree.def > > and rtl.def agree. > > IMO that's less clear for rtl.def: > > /* This is an ordered NE, ie !UNEQ, ie false for NaN. */ > > Do you read "ordered" as "signaling on NaNs"? Then what about EQ? Yes. > And even less clear for tree.def: > > /* This is the reverse of uneq_expr. */ > > > The only disagreeing part is LTGT_EXPR in generic.texi which is "fuzzy" > > (says > > unordered but then "With the possible exception of @code{LTGT_EXPR}, all of > > these operations are guaranteed not to generate a floating point exception." > > So even that can be read as "agreement". > > IMO it's just aligned with rtl.def/tree.def, i.e. it doesn't really take side. > > > So we need to modify rtl.def, tree.def and generic.texi to clearly state that > LTGT signals on NaNs, like GE/GT/LE/LT. And actually fix generic.texi because > LTGT_EXPR is *not* an unordered comparison operator: as rtl.def says, it's the > ordered NE, i.e. it returns false for NaNs. Lets do it.
[Bug middle-end/91633] Why -funroll-loops affect code without loop.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91633 --- Comment #2 from Hongtao.liu --- It's at least confusing.
[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 --- Comment #19 from rguenther at suse dot de --- On Mon, 2 Sep 2019, ebotcazou at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 > > --- Comment #17 from Eric Botcazou --- > Created attachment 46797 > --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46797&action=edit > Proposed wording change LGTM.
[Bug target/91634] [10 Regression] 508.namd_r (and 435.gromacs) speed regression after r274994
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91634 Richard Biener changed: What|Removed |Added Target||x86_64-linux-gnu Target Milestone|--- |10.0
[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323 --- Comment #20 from Eric Botcazou --- Author: ebotcazou Date: Mon Sep 2 10:10:23 2019 New Revision: 275303 URL: https://gcc.gnu.org/viewcvs?rev=275303&root=gcc&view=rev Log: PR target/91323 * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators. * rtl.def (LTGT): Likewise. Add note about floating-point exceptions. * tree.def (LTGT_EXPR): Likewise. * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT. Modified: trunk/gcc/ChangeLog trunk/gcc/config/sparc/sparc.c trunk/gcc/doc/generic.texi trunk/gcc/rtl.def trunk/gcc/tree.def
[Bug rtl-optimization/91137] [7 Regression] Wrong code with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91137 --- Comment #15 from bin cheng --- Author: amker Date: Mon Sep 2 10:10:44 2019 New Revision: 275304 URL: https://gcc.gnu.org/viewcvs?rev=275304&root=gcc&view=rev Log: Backport from mainline 2019-07-18 Bin Cheng PR tree-optimization/91137 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): Init, use and fini the above new field. (determine_base_object_1): New function. (determine_base_object): Reimplement using walk_tree. 2019-07-18 Bin Cheng PR tree-optimization/91137 * gcc.c-torture/execute/pr91137.c: New test. Added: branches/gcc-7-branch/gcc/testsuite/gcc.c-torture/execute/pr91137.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-ssa-loop-ivopts.c
[Bug ipa/91062] gcc.dg/ipa/ipa-pta-1.c dump contains garbage when gcc was configured with --enable-checking=all
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91062 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from Richard Biener --- Fixed. Not worth backporting further.
[Bug libstdc++/90770] Building with --enable-libstdcxx-debug and make profiledbootstrap fails with mv: cannot stat 'Makefile': No such file or directory
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90770 --- Comment #9 from Jonathan Wakely --- Author: redi Date: Mon Sep 2 11:09:55 2019 New Revision: 275308 URL: https://gcc.gnu.org/viewcvs?rev=275308&root=gcc&view=rev Log: PR libstdc++/90770 fix missing src/debug/Makefile Backport from mainline 2019-06-07 Jonathan Wakely PR libstdc++/90770 * src/Makefile.am (stamp-debug): Also test for missing makefile. * src/Makefile.in: Regenerate. Modified: branches/gcc-7-branch/libstdc++-v3/ChangeLog branches/gcc-7-branch/libstdc++-v3/src/Makefile.am branches/gcc-7-branch/libstdc++-v3/src/Makefile.in
[Bug libstdc++/51333] [7/8 Regression] cxxabi.h incompatible with -fkeep-inline-functions at link time
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51333 Jonathan Wakely changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #15 from Jonathan Wakely --- And 7.5
[Bug libstdc++/51333] [7/8 Regression] cxxabi.h incompatible with -fkeep-inline-functions at link time
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51333 --- Comment #14 from Jonathan Wakely --- Author: redi Date: Mon Sep 2 11:10:00 2019 New Revision: 275309 URL: https://gcc.gnu.org/viewcvs?rev=275309&root=gcc&view=rev Log: PR libstdc++/51333 Define recursive_init_error constructor non-inline The recursive_init_error class is defined in a header, with an inline constructor, but the definition of the vtable and destructor are not exported from the shared library. With -fkeep-inline-functions the constructor gets emitted in user code, and requires the (non-exported) vtable. This fails to link. As far as I can tell, the recursive_init_error class definition was moved into so it could be documented with Doxygen, not for any technical reason. But now it's there (and documented), somebody could be relying on it, by catching that type and possibly performing derived-to-base conversions to the std::exception base class. So the conservative fix is to leave the class definition in the header but make the constructor non-inline. This still allows the type to be caught and still defines its base class. Backport from mainline 2019-07-29 Jonathan Wakely PR libstdc++/51333 * libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define constructor inline. * libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define constructor. * testsuite/18_support/51333.cc: New test. Added: branches/gcc-7-branch/libstdc++-v3/testsuite/18_support/51333.cc Modified: branches/gcc-7-branch/libstdc++-v3/ChangeLog branches/gcc-7-branch/libstdc++-v3/libsupc++/cxxabi.h branches/gcc-7-branch/libstdc++-v3/libsupc++/guard_error.cc
[Bug middle-end/89303] [7 Regression] memory leak with shared_ptr and enable_shared_from_this
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89303 --- Comment #35 from Jonathan Wakely --- Author: redi Date: Mon Sep 2 11:10:08 2019 New Revision: 275312 URL: https://gcc.gnu.org/viewcvs?rev=275312&root=gcc&view=rev Log: PR middle-end/89303 add testcase for std::enable_shared_from_this PR middle-end/89303 * testsuite/20_util/enable_shared_from_this/89303.cc: New test. Added: branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc Modified: branches/gcc-7-branch/libstdc++-v3/ChangeLog
[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308 --- Comment #4 from Jonathan Wakely --- Author: redi Date: Mon Sep 2 11:10:04 2019 New Revision: 275311 URL: https://gcc.gnu.org/viewcvs?rev=275311&root=gcc&view=rev Log: PR libstdc++/91308 fix constraints on unique_ptr assignment * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error with dg-prune-output for enable_if failure. * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Add dg-prune-output for enable_if failure. Backport from mainline 2019-07-31 Jonathan Wakely PR libstdc++/91308 * include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove constraints on deleter that should only apply to the constructor. (unique_ptr::__safe_conversion_up): Likewise. (unique_ptr::unique_ptr(unique_ptr&&)): Restore constraints on deleter here. * testsuite/20_util/unique_ptr/assign/91308.cc: New test. Added: branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc Modified: branches/gcc-7-branch/libstdc++-v3/ChangeLog branches/gcc-7-branch/libstdc++-v3/include/bits/unique_ptr.h branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
[Bug tree-optimization/83661] sincos does not handle sin(2x)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83661 Maxim Kuvyrkov changed: What|Removed |Added CC||mkuvyrkov at gcc dot gnu.org --- Comment #7 from Maxim Kuvyrkov --- Hi Christophe, Re. synchronization of optimized-routines and the popular C libraries -- this is done on regular cycles by Szabolcs (Arm). FYI, Linaro and Arm are merging cortex-strings into optimized-routines, so soon there will be a single repo for Arm implementations of C library functions. This and more will be discussed at SAN19 Connect, and there is even a main-track session on optimized-routines.
[Bug rtl-optimization/91635] New: wrong code at -O2 with __builtin_add_overflow()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635 Bug ID: 91635 Summary: wrong code at -O2 with __builtin_add_overflow() Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Target: riscv64-unknown-linux-gnu Created attachment 46798 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46798&action=edit reduced testcase Output: $ /repo/gcc-trunk/binary-latest-riscv64/bin/riscv64-unknown-linux-gnu-gcc -O2 testcase.c -static $ qemu-riscv64 ./a.out Aborted At the assembly level: foo: # testcase.c:6: c <<= __builtin_add_overflow (-c, -1, &b); not a0,a0 # tmp84, tmp89 lui a5,%hi(b) # tmp81, sh a0,%lo(b)(a5) # tmp84, b # testcase.c:9: } li a0,0#, ret Constant 0 is loaded to the register; that is wrong. $ riscv64-unknown-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest-riscv64/bin/riscv64-unknown-linux-gnu-gcc COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-275299-checking-yes-rtl-df-extra-riscv64/bin/../libexec/gcc/riscv64-unknown-linux-gnu/10.0.0/lto-wrapper Target: riscv64-unknown-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra --with-cloog --with-ppl --with-isl --with-sysroot=/usr/riscv64-unknown-linux-gnu --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=riscv64-unknown-linux-gnu --with-ld=/usr/bin/riscv64-unknown-linux-gnu-ld --with-as=/usr/bin/riscv64-unknown-linux-gnu-as --disable-multilib --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-275299-checking-yes-rtl-df-extra-riscv64 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 10.0.0 20190902 (experimental) (GCC)
[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308 Jonathan Wakely changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Jonathan Wakely --- Fixed for 7.5, 8.4 and 9.2
[Bug libstdc++/90770] Building with --enable-libstdcxx-debug and make profiledbootstrap fails with mv: cannot stat 'Makefile': No such file or directory
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90770 Jonathan Wakely changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #10 from Jonathan Wakely --- Fixed for 7.5, 8.4, and 9.2
[Bug c++/91636] New: performance regression about const string optimization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636 Bug ID: 91636 Summary: performance regression about const string optimization Product: gcc Version: 7.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: baiwfg2 at gmail dot com Target Milestone: --- Hi. I'm benchmarking const std::string optimization with different gcc version and find that gcc 7.3.1 is not working well. Here's my benchmark code (I also put it on wandbox: https://wandbox.org/permlink/vuAZWRp4H6S6Foh2) : ``` #include #include #include #include #include using namespace std; void bad() { for (int i=0; i<1000; i++) { string s; s = "loog"; } } void good() { for (int i=0; i<1000; i++) { const string s = "loog"; } } typedef void(*fp)(); void timing(fp fn) { auto begin = std::chrono::high_resolution_clock::now(); fn(); auto end = std::chrono::high_resolution_clock::now(); std::cout << std::chrono::duration_cast(end-begin).count() << std::endl; } int main(int argc, char* argv[]) { if (argc != 2) { cout << "wrong args\n"; exit(1); } char c = argv[1][0]; if (c == '1') timing(bad); else if (c == '2') timing(good); } ``` Obviously the good() is better than bad(). But when I try compiling: g++-7.3.1 a.cc -O2 And run it. It gives much worse result(good() is -7% more efficient than bad()) than any other version does, such as gcc 7.3.0, 7.4.0, 8.3.0( 30-40% more efficient). My gcc 7.3.1 version info is: [root@VM_11_190_centos /data1/ethencao]# gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-redhat-linux Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --with-default-libstdcxx-abi=gcc4-compatible --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux Thread model: posix gcc version 7.3.1 20180303 (Red Hat 7.3.1-6) (GCC) By the way, I don't install gcc by source compiling. Instead I use yum, apt-get, or docker to use it.
[Bug c++/91636] performance regression about const string optimization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Jonathan Wakely --- (In reply to Chan Lewis from comment #0) > My gcc 7.3.1 version info is: > > [root@VM_11_190_centos /data1/ethencao]# gcc -v > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper > OFFLOAD_TARGET_NAMES=nvptx-none > OFFLOAD_TARGET_DEFAULT=1 > Target: x86_64-redhat-linux > Configured with: ../configure --enable-bootstrap > --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr > --mandir=/usr/share/man --infodir=/usr/share/info > --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared > --enable-threads=posix --enable-checking=release --enable-multilib > --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions > --with-default-libstdcxx-abi=gcc4-compatible As I already told you by email, you're comparing apples with oranges. Your GCC 7.3.1 uses the old std::string ABI, as shown by the line above.
[Bug c++/91636] performance regression about const string optimization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636 --- Comment #2 from Chan Lewis --- (In reply to Jonathan Wakely from comment #1) > (In reply to Chan Lewis from comment #0) > > My gcc 7.3.1 version info is: > > > > [root@VM_11_190_centos /data1/ethencao]# gcc -v > > Using built-in specs. > > COLLECT_GCC=gcc > > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper > > OFFLOAD_TARGET_NAMES=nvptx-none > > OFFLOAD_TARGET_DEFAULT=1 > > Target: x86_64-redhat-linux > > Configured with: ../configure --enable-bootstrap > > --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr > > --mandir=/usr/share/man --infodir=/usr/share/info > > --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared > > --enable-threads=posix --enable-checking=release --enable-multilib > > --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions > > --with-default-libstdcxx-abi=gcc4-compatible > > As I already told you by email, you're comparing apples with oranges. Your > GCC 7.3.1 uses the old std::string ABI, as shown by the line above. I'm sorry for that. I'd thought it's different from devtoolset's gcc. It turns out I've been always using Redhat's gcc. You mean the cause is just this: `--with-default-libstdcxx-abi=gcc4-compatible` or is the Redhat gcc itself ? What's the standard output of GNU gcc -v ?
[Bug target/91637] New: Make efficient ISR prologues and epilogues on AVR available to Ada/GNAT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91637 Bug ID: 91637 Summary: Make efficient ISR prologues and epilogues on AVR available to Ada/GNAT Product: gcc Version: 9.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: rolf.ebert.gcc at gmx dot de Target Milestone: --- The fix for PR target/81268 and PR target/20296 works for C and C++, but does not work for Ada (gnat1). Despite the same back-end (between gnat1 and cc1) and the explicit compiler switch -mgas-isr-prologues the new assembler pseudo codes __gcc_isr are not generated.
[Bug tree-optimization/90018] [7 Regression] r265453 miscompiled 527.cam4_r in SPEC CPU 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90018 --- Comment #22 from Richard Biener --- The reduced testcase isn't vectorized on the GCC 7 branch for other reasons.
[Bug middle-end/91512] [10 Regression] Fortran compile time regression.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91512 Thomas Koenig changed: What|Removed |Added Keywords||compile-time-hog, ||memory-hog --- Comment #19 from Thomas Koenig --- As a workaround, you could compile with -Os. Apart from that, 10 gig also seems excessive for compiling. However, without a test case this is not a valid bug report :-| and trying stabs in the dark like comment#17 is not likely to succeed. Is there and way you can reduce this to something you could post? I will omit my standard rant about closed-source benchmarks for a change.
[Bug c++/91636] performance regression about const string optimization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636 --- Comment #3 from Jonathan Wakely --- There is no standard output because there's no standard build of GCC. The output depends how it's configured and built. On RHEL/CentOS 6 and 7 the devtoolset compiler only supports the old std::string implementation. If you want the new std::string you need to compile GCC yourself (and live with the fact all the system libraries use the old string) or use RHEL/CentOS 8.
[Bug tree-optimization/83661] sincos does not handle sin(2x)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83661 Wilco changed: What|Removed |Added CC||wilco at gcc dot gnu.org --- Comment #8 from Wilco --- (In reply to Christophe Monat from comment #6) > (In reply to Alexander Monakov from comment #5) > > sincos performs range reduction for the argument just once, which is fairly > > important. A well-optimized sincos also shares some computations for the > > sin/cos parts, as done in > > https://github.com/ARM-software/optimized-routines/blob/master/math/sincosf.c > > Thanks for the pointer, indeed this implementation looks great. > > @Pratamesh #Linaro: is there synchronization between the ARM optimized > routines and the usuals libc (glibc, newlib, musl,...) ? I already committed the rewritten sinf/cosf/sincosf to GLIBC and newlib. Musl still uses a slow version. > > (fwiw I'm against adding such transforms to the compiler) > > I would favor upgrading the routines if it's not already done, and not do > any such transformation in the compiler. One of the key issues with sincos is that it has a slow interface - you can get a large speedup by avoiding all the unncessary memory accesses.
[Bug tree-optimization/91126] [7 regression] Incorrect constant propagation of BIT_FIELD_REF
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91126 --- Comment #12 from Richard Biener --- Author: rguenth Date: Mon Sep 2 12:56:24 2019 New Revision: 275317 URL: https://gcc.gnu.org/viewcvs?rev=275317&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-07-19 Richard Biener PR tree-optimization/91200 * tree-ssa-phiopt.c (cond_store_replacement): Check we have no PHI nodes in middle-bb. * gcc.dg/torture/pr91200.c: New testcase. 2019-07-15 Richard Biener PR middle-end/91162 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI node make sure to replace all uses with something valid. * gcc.dg/autopar/pr91162.c: New testcase. 2019-07-11 Richard Biener PR middle-end/91131 * gimplify.c (gimplify_compound_literal_expr): Force a temporary when the object is volatile and we have not cleared it even though there are no nonzero elements. * gcc.target/i386/pr91131.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust native encoding offset for BYTES_BIG_ENDIAN. (vn_reference_lookup_3): Likewise. * gcc.dg/torture/pr91126.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust native encoding offset for BYTES_BIG_ENDIAN. * gcc.dg/torture/pr91126.c: New testcase. 2019-04-29 Richard Biener PR tree-optimization/90278 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean EH on comparison simplification. * gcc.dg/torture/pr90278.c: New testcase. 2019-04-11 Richard Biener PR tree-optimization/90020 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. * tree-ssa-pre.c (compute_avail): Use it to not put possibly trapping references after a call that might not return into EXP_GEN. * gcse.c (compute_hash_table_work): Do not elide marking a block containing a call if the call might not return. * gcc.dg/torture/pr90020.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/gcse.c branches/gcc-7-branch/gcc/gimplify.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-cfg.c branches/gcc-7-branch/gcc/tree-ssa-forwprop.c branches/gcc-7-branch/gcc/tree-ssa-phiopt.c branches/gcc-7-branch/gcc/tree-ssa-pre.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.h
[Bug tree-optimization/90020] [7 regression] -O2 -Os x86-64 wrong code generated for GNU Emacs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90020 --- Comment #23 from Richard Biener --- Author: rguenth Date: Mon Sep 2 12:56:24 2019 New Revision: 275317 URL: https://gcc.gnu.org/viewcvs?rev=275317&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-07-19 Richard Biener PR tree-optimization/91200 * tree-ssa-phiopt.c (cond_store_replacement): Check we have no PHI nodes in middle-bb. * gcc.dg/torture/pr91200.c: New testcase. 2019-07-15 Richard Biener PR middle-end/91162 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI node make sure to replace all uses with something valid. * gcc.dg/autopar/pr91162.c: New testcase. 2019-07-11 Richard Biener PR middle-end/91131 * gimplify.c (gimplify_compound_literal_expr): Force a temporary when the object is volatile and we have not cleared it even though there are no nonzero elements. * gcc.target/i386/pr91131.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust native encoding offset for BYTES_BIG_ENDIAN. (vn_reference_lookup_3): Likewise. * gcc.dg/torture/pr91126.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust native encoding offset for BYTES_BIG_ENDIAN. * gcc.dg/torture/pr91126.c: New testcase. 2019-04-29 Richard Biener PR tree-optimization/90278 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean EH on comparison simplification. * gcc.dg/torture/pr90278.c: New testcase. 2019-04-11 Richard Biener PR tree-optimization/90020 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. * tree-ssa-pre.c (compute_avail): Use it to not put possibly trapping references after a call that might not return into EXP_GEN. * gcse.c (compute_hash_table_work): Do not elide marking a block containing a call if the call might not return. * gcc.dg/torture/pr90020.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/gcse.c branches/gcc-7-branch/gcc/gimplify.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-cfg.c branches/gcc-7-branch/gcc/tree-ssa-forwprop.c branches/gcc-7-branch/gcc/tree-ssa-phiopt.c branches/gcc-7-branch/gcc/tree-ssa-pre.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.h
[Bug tree-optimization/90278] ICE: verify_gimple failed (error: statement marked for throw, but doesn't)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90278 --- Comment #6 from Richard Biener --- Author: rguenth Date: Mon Sep 2 12:56:24 2019 New Revision: 275317 URL: https://gcc.gnu.org/viewcvs?rev=275317&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-07-19 Richard Biener PR tree-optimization/91200 * tree-ssa-phiopt.c (cond_store_replacement): Check we have no PHI nodes in middle-bb. * gcc.dg/torture/pr91200.c: New testcase. 2019-07-15 Richard Biener PR middle-end/91162 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI node make sure to replace all uses with something valid. * gcc.dg/autopar/pr91162.c: New testcase. 2019-07-11 Richard Biener PR middle-end/91131 * gimplify.c (gimplify_compound_literal_expr): Force a temporary when the object is volatile and we have not cleared it even though there are no nonzero elements. * gcc.target/i386/pr91131.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust native encoding offset for BYTES_BIG_ENDIAN. (vn_reference_lookup_3): Likewise. * gcc.dg/torture/pr91126.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust native encoding offset for BYTES_BIG_ENDIAN. * gcc.dg/torture/pr91126.c: New testcase. 2019-04-29 Richard Biener PR tree-optimization/90278 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean EH on comparison simplification. * gcc.dg/torture/pr90278.c: New testcase. 2019-04-11 Richard Biener PR tree-optimization/90020 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. * tree-ssa-pre.c (compute_avail): Use it to not put possibly trapping references after a call that might not return into EXP_GEN. * gcse.c (compute_hash_table_work): Do not elide marking a block containing a call if the call might not return. * gcc.dg/torture/pr90020.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/gcse.c branches/gcc-7-branch/gcc/gimplify.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-cfg.c branches/gcc-7-branch/gcc/tree-ssa-forwprop.c branches/gcc-7-branch/gcc/tree-ssa-phiopt.c branches/gcc-7-branch/gcc/tree-ssa-pre.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.h
[Bug middle-end/91131] Bad bitfield coalescing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91131 --- Comment #15 from Richard Biener --- Author: rguenth Date: Mon Sep 2 12:56:24 2019 New Revision: 275317 URL: https://gcc.gnu.org/viewcvs?rev=275317&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-07-19 Richard Biener PR tree-optimization/91200 * tree-ssa-phiopt.c (cond_store_replacement): Check we have no PHI nodes in middle-bb. * gcc.dg/torture/pr91200.c: New testcase. 2019-07-15 Richard Biener PR middle-end/91162 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI node make sure to replace all uses with something valid. * gcc.dg/autopar/pr91162.c: New testcase. 2019-07-11 Richard Biener PR middle-end/91131 * gimplify.c (gimplify_compound_literal_expr): Force a temporary when the object is volatile and we have not cleared it even though there are no nonzero elements. * gcc.target/i386/pr91131.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust native encoding offset for BYTES_BIG_ENDIAN. (vn_reference_lookup_3): Likewise. * gcc.dg/torture/pr91126.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust native encoding offset for BYTES_BIG_ENDIAN. * gcc.dg/torture/pr91126.c: New testcase. 2019-04-29 Richard Biener PR tree-optimization/90278 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean EH on comparison simplification. * gcc.dg/torture/pr90278.c: New testcase. 2019-04-11 Richard Biener PR tree-optimization/90020 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. * tree-ssa-pre.c (compute_avail): Use it to not put possibly trapping references after a call that might not return into EXP_GEN. * gcse.c (compute_hash_table_work): Do not elide marking a block containing a call if the call might not return. * gcc.dg/torture/pr90020.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/gcse.c branches/gcc-7-branch/gcc/gimplify.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-cfg.c branches/gcc-7-branch/gcc/tree-ssa-forwprop.c branches/gcc-7-branch/gcc/tree-ssa-phiopt.c branches/gcc-7-branch/gcc/tree-ssa-pre.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.h
[Bug tree-optimization/90020] [7 regression] -O2 -Os x86-64 wrong code generated for GNU Emacs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90020 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED --- Comment #24 from Richard Biener --- Fixed.
[Bug tree-optimization/91162] [7 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.c:86 (error: invalid 'PHI' argument)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91162 --- Comment #9 from Richard Biener --- Author: rguenth Date: Mon Sep 2 12:56:24 2019 New Revision: 275317 URL: https://gcc.gnu.org/viewcvs?rev=275317&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-07-19 Richard Biener PR tree-optimization/91200 * tree-ssa-phiopt.c (cond_store_replacement): Check we have no PHI nodes in middle-bb. * gcc.dg/torture/pr91200.c: New testcase. 2019-07-15 Richard Biener PR middle-end/91162 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI node make sure to replace all uses with something valid. * gcc.dg/autopar/pr91162.c: New testcase. 2019-07-11 Richard Biener PR middle-end/91131 * gimplify.c (gimplify_compound_literal_expr): Force a temporary when the object is volatile and we have not cleared it even though there are no nonzero elements. * gcc.target/i386/pr91131.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust native encoding offset for BYTES_BIG_ENDIAN. (vn_reference_lookup_3): Likewise. * gcc.dg/torture/pr91126.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust native encoding offset for BYTES_BIG_ENDIAN. * gcc.dg/torture/pr91126.c: New testcase. 2019-04-29 Richard Biener PR tree-optimization/90278 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean EH on comparison simplification. * gcc.dg/torture/pr90278.c: New testcase. 2019-04-11 Richard Biener PR tree-optimization/90020 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. * tree-ssa-pre.c (compute_avail): Use it to not put possibly trapping references after a call that might not return into EXP_GEN. * gcse.c (compute_hash_table_work): Do not elide marking a block containing a call if the call might not return. * gcc.dg/torture/pr90020.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/gcse.c branches/gcc-7-branch/gcc/gimplify.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-cfg.c branches/gcc-7-branch/gcc/tree-ssa-forwprop.c branches/gcc-7-branch/gcc/tree-ssa-phiopt.c branches/gcc-7-branch/gcc/tree-ssa-pre.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.h
[Bug tree-optimization/91200] ICE on valid code at -O1: verify_ssa failed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91200 --- Comment #6 from Richard Biener --- Author: rguenth Date: Mon Sep 2 12:56:24 2019 New Revision: 275317 URL: https://gcc.gnu.org/viewcvs?rev=275317&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-07-19 Richard Biener PR tree-optimization/91200 * tree-ssa-phiopt.c (cond_store_replacement): Check we have no PHI nodes in middle-bb. * gcc.dg/torture/pr91200.c: New testcase. 2019-07-15 Richard Biener PR middle-end/91162 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI node make sure to replace all uses with something valid. * gcc.dg/autopar/pr91162.c: New testcase. 2019-07-11 Richard Biener PR middle-end/91131 * gimplify.c (gimplify_compound_literal_expr): Force a temporary when the object is volatile and we have not cleared it even though there are no nonzero elements. * gcc.target/i386/pr91131.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust native encoding offset for BYTES_BIG_ENDIAN. (vn_reference_lookup_3): Likewise. * gcc.dg/torture/pr91126.c: New testcase. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust native encoding offset for BYTES_BIG_ENDIAN. * gcc.dg/torture/pr91126.c: New testcase. 2019-04-29 Richard Biener PR tree-optimization/90278 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean EH on comparison simplification. * gcc.dg/torture/pr90278.c: New testcase. 2019-04-11 Richard Biener PR tree-optimization/90020 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. * tree-ssa-pre.c (compute_avail): Use it to not put possibly trapping references after a call that might not return into EXP_GEN. * gcse.c (compute_hash_table_work): Do not elide marking a block containing a call if the call might not return. * gcc.dg/torture/pr90020.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/gcse.c branches/gcc-7-branch/gcc/gimplify.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-cfg.c branches/gcc-7-branch/gcc/tree-ssa-forwprop.c branches/gcc-7-branch/gcc/tree-ssa-phiopt.c branches/gcc-7-branch/gcc/tree-ssa-pre.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.c branches/gcc-7-branch/gcc/tree-ssa-sccvn.h
[Bug tree-optimization/90278] ICE: verify_gimple failed (error: statement marked for throw, but doesn't)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90278 Richard Biener changed: What|Removed |Added Known to work||7.4.1 Target Milestone|--- |7.5 Known to fail||7.4.0 --- Comment #7 from Richard Biener --- Fixed.
[Bug tree-optimization/91126] [7 regression] Incorrect constant propagation of BIT_FIELD_REF
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91126 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED Known to fail||7.4.0 --- Comment #13 from Richard Biener --- Fixed.
[Bug middle-end/91131] Bad bitfield coalescing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91131 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED Target Milestone|--- |7.5 --- Comment #16 from Richard Biener --- Fixed.
[Bug tree-optimization/91200] ICE on valid code at -O1: verify_ssa failed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91200 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED Target Milestone|--- |7.5 --- Comment #7 from Richard Biener --- Fixed.
[Bug tree-optimization/91162] [7 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.c:86 (error: invalid 'PHI' argument)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91162 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED Known to fail||7.4.0 --- Comment #10 from Richard Biener --- Fixed.
[Bug target/91612] [10 regression][arm] gcc.target/arm/aapcs/align4.c ICE after r274986
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91612 --- Comment #3 from Christophe Lyon --- (In reply to Bernd Edlinger from comment #2) > Created attachment 46792 [details] > untested patch > > This is a untested patch it should fix > pr91612 pr91613 pr91615 (?) > pr91603 > and pr91605 (i386) > but probably not 91614 It doesn't fix pr91614 nor pr91615 :-( It does fix pr91612. I don't know yet for pr91613
[Bug tree-optimization/91632] [10 Regression] Probably wrong code since r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91632 --- Comment #1 from Jakub Jelinek --- Author: jakub Date: Mon Sep 2 13:35:54 2019 New Revision: 275318 URL: https://gcc.gnu.org/viewcvs?rev=275318&root=gcc&view=rev Log: PR tree-optimization/91632 * gcc.c-torture/execute/pr91632.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr91632.c Modified: trunk/gcc/testsuite/ChangeLog
[Bug go/91617] [10 regression] Many go test case failures after r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617 Jakub Jelinek changed: What|Removed |Added CC||marxin at gcc dot gnu.org --- Comment #6 from Jakub Jelinek --- *** Bug 91632 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/91632] [10 Regression] Probably wrong code since r275026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91632 Jakub Jelinek changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #2 from Jakub Jelinek --- Dup. *** This bug has been marked as a duplicate of bug 91617 ***
[Bug target/80986] auto keyword variable lost its attributes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80986 --- Comment #8 from linzj --- (In reply to Anssi Hannula from comment #7) > Created attachment 46772 [details] > Simple testcase for the issue > > The regression still exists on GCC trunk. > > We also hit the issue with > https://github.com/google/skia/blob/9318a6cfbcdd160151bc4ae36425563f8cf68d3e/ > src/opts/SkRasterPipeline_opts.h causing incorrect rendering. > > Code is working correctly on: GCC 5.4.0, clang 6.0.1 > Not working correctly on: GCC 7.3.0 and GCC trunk r274958 (and GCC 6.3.0 > according to the original reporter) > > Attached is a simple testcase that can be used with -std=c++11 > -mfloat-abi=softfp for ARM. > Disassembly of main() shows the proper VLDR to s0 only for the latter > "non-auto" call of func() when compiled with affected GCC. Just set affects_type_identity field like I did, it's okay.
[Bug tree-optimization/83661] sincos does not handle sin(2x)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83661 --- Comment #9 from Wilco --- (In reply to Christophe Monat from comment #4) > Hi Pratamesh, > > You're absolutely right - maybe it's more efficient when there is some > hardware sincos available (Intel FSINCOS ?) but I would check also carefully > the actual performance. CISC hardware math instructions are laughably slow, there is never a reason to consider them (https://www.sourceware.org/ml/libc-alpha/2019-03/msg00559.html). > Indeed, it looks to me that either you have to use two different polynomials > or shift one argument and use either sin or cos, but anyway twice. The gain is due to sharing most of the code - you evaluate 2 polynomials, but that's only few extra FMAs (which even on a single issue in-order will perfectly parallelize given each polynomial is latency bound). > We studied that in a slightly different context with Claude-Pierre Jeannerod > from ENS Lyon and our PhD Jingyan Lu-Jourdan a while ago : "Simultaneous > floating-point sine and cosine for VLIW integer processors" available here: > https://hal.archives-ouvertes.fr/hal-00672327 and we were able to gain > significant performance by exploiting the low-level parallelism of the > processor. Agreed, this is not a full IEEE implementation but the important > ideas are there. Interesting paper!
[Bug target/91635] wrong code at -O2 with __builtin_add_overflow()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek --- Can't reproduce. I get: foo: not a4,a0 lui a5,%hi(b) sllia0,a0,17 sh a4,%lo(b)(a5) srlia0,a0,17 ret at -O2 which looks correct.
[Bug tree-optimization/89135] [7 Regression] internal compiler error: in gimple_split_edge, at tree-cfg.c:2747
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89135 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED Known to fail||7.4.0 --- Comment #7 from Richard Biener --- Fixed.
[Bug tree-optimization/89296] [7 Regression] tree copy-header masking uninitialized warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296 --- Comment #8 from Richard Biener --- Author: rguenth Date: Mon Sep 2 14:14:14 2019 New Revision: 275319 URL: https://gcc.gnu.org/viewcvs?rev=275319&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-03-14 Richard Biener PR tree-optimization/89710 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use safe_dyn_cast. * gcc.dg/torture/pr89710.c: New testcase. 2019-03-14 Richard Biener PR middle-end/89572 * tree-scalar-evolution.c (get_loop_exit_condition): Use safe_dyn_cast. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use gimple_location_safe. * gcc.dg/torture/pr89572.c: New testcase. 2019-02-18 Richard Biener PR tree-optimization/89296 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting of no-warning flag to cases that might emit the bogus warning. * gcc.dg/uninit-pr89296.c: New testcase. 2019-02-21 Richard Biener PR middle-end/89392 cp/ * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not make symtab process new functions here. 2019-01-31 Richard Biener PR tree-optimization/89135 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks with abnormal preds. * gcc.dg/torture/pr89135.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-scalar-evolution.c branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c branches/gcc-7-branch/gcc/tree-ssa-phiprop.c
[Bug c++/89392] [7 Regression] ICE in bitmap_bit_p, at bitmap.c:978
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89392 --- Comment #9 from Richard Biener --- Author: rguenth Date: Mon Sep 2 14:14:14 2019 New Revision: 275319 URL: https://gcc.gnu.org/viewcvs?rev=275319&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-03-14 Richard Biener PR tree-optimization/89710 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use safe_dyn_cast. * gcc.dg/torture/pr89710.c: New testcase. 2019-03-14 Richard Biener PR middle-end/89572 * tree-scalar-evolution.c (get_loop_exit_condition): Use safe_dyn_cast. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use gimple_location_safe. * gcc.dg/torture/pr89572.c: New testcase. 2019-02-18 Richard Biener PR tree-optimization/89296 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting of no-warning flag to cases that might emit the bogus warning. * gcc.dg/uninit-pr89296.c: New testcase. 2019-02-21 Richard Biener PR middle-end/89392 cp/ * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not make symtab process new functions here. 2019-01-31 Richard Biener PR tree-optimization/89135 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks with abnormal preds. * gcc.dg/torture/pr89135.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-scalar-evolution.c branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c branches/gcc-7-branch/gcc/tree-ssa-phiprop.c
[Bug tree-optimization/89135] [7 Regression] internal compiler error: in gimple_split_edge, at tree-cfg.c:2747
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89135 --- Comment #8 from Richard Biener --- Author: rguenth Date: Mon Sep 2 14:14:14 2019 New Revision: 275319 URL: https://gcc.gnu.org/viewcvs?rev=275319&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-03-14 Richard Biener PR tree-optimization/89710 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use safe_dyn_cast. * gcc.dg/torture/pr89710.c: New testcase. 2019-03-14 Richard Biener PR middle-end/89572 * tree-scalar-evolution.c (get_loop_exit_condition): Use safe_dyn_cast. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use gimple_location_safe. * gcc.dg/torture/pr89572.c: New testcase. 2019-02-18 Richard Biener PR tree-optimization/89296 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting of no-warning flag to cases that might emit the bogus warning. * gcc.dg/uninit-pr89296.c: New testcase. 2019-02-21 Richard Biener PR middle-end/89392 cp/ * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not make symtab process new functions here. 2019-01-31 Richard Biener PR tree-optimization/89135 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks with abnormal preds. * gcc.dg/torture/pr89135.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-scalar-evolution.c branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c branches/gcc-7-branch/gcc/tree-ssa-phiprop.c
[Bug tree-optimization/89572] [7 Regression] ICE in dyn_cast(gimple*) / get_loop_exit_condition(loop const*)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89572 --- Comment #6 from Richard Biener --- Author: rguenth Date: Mon Sep 2 14:14:14 2019 New Revision: 275319 URL: https://gcc.gnu.org/viewcvs?rev=275319&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-03-14 Richard Biener PR tree-optimization/89710 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use safe_dyn_cast. * gcc.dg/torture/pr89710.c: New testcase. 2019-03-14 Richard Biener PR middle-end/89572 * tree-scalar-evolution.c (get_loop_exit_condition): Use safe_dyn_cast. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use gimple_location_safe. * gcc.dg/torture/pr89572.c: New testcase. 2019-02-18 Richard Biener PR tree-optimization/89296 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting of no-warning flag to cases that might emit the bogus warning. * gcc.dg/uninit-pr89296.c: New testcase. 2019-02-21 Richard Biener PR middle-end/89392 cp/ * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not make symtab process new functions here. 2019-01-31 Richard Biener PR tree-optimization/89135 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks with abnormal preds. * gcc.dg/torture/pr89135.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-scalar-evolution.c branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c branches/gcc-7-branch/gcc/tree-ssa-phiprop.c
[Bug target/91638] New: powerpc -mlong-double-NN (documentation) issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91638 Bug ID: 91638 Summary: powerpc -mlong-double-NN (documentation) issues Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: segher at gcc dot gnu.org Target Milestone: --- The -mlong-double-64 and -mlong-double-128 command line options aren't documented. The -Q --help=target output shows -mlong-double-[64,128]127 which is a bit confusing (it only allows setting it to 64 and 128; 127 and 129 have an internal meaning, but the user shouldn't see it, ideally).
[Bug tree-optimization/89710] [7 Regression] ICE in dyn_cast(gimple*) / should_duplicate_loop_header_p
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89710 --- Comment #7 from Richard Biener --- Author: rguenth Date: Mon Sep 2 14:14:14 2019 New Revision: 275319 URL: https://gcc.gnu.org/viewcvs?rev=275319&root=gcc&view=rev Log: 2019-09-02 Richard Biener Backport from mainline 2019-03-14 Richard Biener PR tree-optimization/89710 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use safe_dyn_cast. * gcc.dg/torture/pr89710.c: New testcase. 2019-03-14 Richard Biener PR middle-end/89572 * tree-scalar-evolution.c (get_loop_exit_condition): Use safe_dyn_cast. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use gimple_location_safe. * gcc.dg/torture/pr89572.c: New testcase. 2019-02-18 Richard Biener PR tree-optimization/89296 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting of no-warning flag to cases that might emit the bogus warning. * gcc.dg/uninit-pr89296.c: New testcase. 2019-02-21 Richard Biener PR middle-end/89392 cp/ * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not make symtab process new functions here. 2019-01-31 Richard Biener PR tree-optimization/89135 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks with abnormal preds. * gcc.dg/torture/pr89135.c: New testcase. Added: branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/tree-scalar-evolution.c branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c branches/gcc-7-branch/gcc/tree-ssa-phiprop.c
[Bug tree-optimization/89296] [7 Regression] tree copy-header masking uninitialized warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED Known to fail||7.4.0 --- Comment #9 from Richard Biener --- Fixed.
[Bug tree-optimization/89710] [7 Regression] ICE in dyn_cast(gimple*) / should_duplicate_loop_header_p
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89710 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED --- Comment #8 from Richard Biener --- Fixed.
[Bug middle-end/24639] [meta-bug] bug to track all Wuninitialized issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639 Bug 24639 depends on bug 89296, which changed state. Bug 89296 Summary: [7 Regression] tree copy-header masking uninitialized warning https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug c++/89392] [7 Regression] ICE in bitmap_bit_p, at bitmap.c:978
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89392 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED --- Comment #10 from Richard Biener --- Fixed.
[Bug tree-optimization/89572] [7 Regression] ICE in dyn_cast(gimple*) / get_loop_exit_condition(loop const*)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89572 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||7.4.1 Resolution|--- |FIXED --- Comment #7 from Richard Biener --- Fixed.
[Bug middle-end/91605] [10 Regression] ICE in ix86_avx256_split_vector_move_misalign, at config/i386/i386-expand.c:489 since r274986
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91605 --- Comment #3 from Bernd Edlinger --- Author: edlinger Date: Mon Sep 2 14:26:26 2019 New Revision: 275320 URL: https://gcc.gnu.org/viewcvs?rev=275320&root=gcc&view=rev Log: 2019-09-02 Bernd Edlinger PR middle-end/91605 * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into... (non_mem_decl_p): ...this. (mem_ref_refers_to_non_mem_p): Handle DECL_P as well ase MEM_REF. (expand_assignment): Call mem_ref_referes_to_non_mem_p unconditionally as before. testsuite: 2019-09-02 Bernd Edlinger PR middle-end/91605 * g++.target/i386/pr91605.C: New test. Added: trunk/gcc/testsuite/g++.target/i386/pr91605.C Modified: trunk/gcc/ChangeLog trunk/gcc/expr.c trunk/gcc/testsuite/ChangeLog
[Bug target/91635] wrong code at -O2 with __builtin_add_overflow()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635 --- Comment #2 from Zdenek Sojka --- (In reply to Jakub Jelinek from comment #1) > Can't reproduce. > I get: > foo: > not a4,a0 > lui a5,%hi(b) > sllia0,a0,17 > sh a4,%lo(b)(a5) > srlia0,a0,17 > ret > at -O2 which looks correct. Thank you for checking this. I can reproduce the failure with a "native" gcc-9.2.0-gentoo in a chroot. I get the same result as you with -mabi=ilp32 ; perhaps you were compiling for the 32bit target? Please try adding -mabi=lp64d -march=rv64gc to the command line.
[Bug c/53075] -Werror=pedantic should be equivalent to -pedantic-errors
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53075 Kamlesh Kumar changed: What|Removed |Added CC||kamleshbhalui at gmail dot com --- Comment #4 from Kamlesh Kumar --- This patch resolves this. diff --git a/gcc/opts.c b/gcc/opts.c index 1417dba..2e71fef 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -3212,7 +3212,7 @@ option_name (diagnostic_context *context, int option_index, if (option_index) { /* A warning classified as an error. */ - if ((orig_diag_kind == DK_WARNING || orig_diag_kind == DK_PEDWARN) + if ((context->pedantic_errors || orig_diag_kind == DK_WARNING || orig_diag_kind == DK_PEDWARN) && diag_kind == DK_ERROR) return concat (cl_options[OPT_Werror_].opt_text, /* Skip over "-W". */
[Bug preprocessor/91639] New: [10 Regression] FAIL: gcc.dg/plugin/location-overflow-test-pr83173.c -fplugin=./location_overflo w_plugin.so scan-file-not # (?!1 [^\r\n]+location-overflow-test-pr83173-
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91639 Bug ID: 91639 Summary: [10 Regression] FAIL: gcc.dg/plugin/location-overflow-test-pr83173.c -fplugin=./location_overflo w_plugin.so scan-file-not # (?!1 [^\r\n]+location-overflow-test-pr83173-1.h" 1) [0-9]+ [^\r\n]+location-overflow-test-pr83173-1.h" Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor Assignee: unassigned at gcc dot gnu.org Reporter: danglin at gcc dot gnu.org Target Milestone: --- Host: hppa-unknown-linux-gnu Target: hppa-unknown-linux-gnu Build: hppa-unknown-linux-gnu spawn -ignore SIGHUP /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/obj dir/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/plugin/location-overflow-te st-pr83173.c -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdi agnostics-color=never -fplugin=./location_overflow_plugin.so -fplugin-arg-locati on_overflow_plugin-value=0x6001 -E -o location-overflow-test-pr83173.i PASS: gcc.dg/plugin/location-overflow-test-pr83173.c -fplugin=./location_overflo w_plugin.so (test for excess errors) PASS: gcc.dg/plugin/location-overflow-test-pr83173.c -fplugin=./location_overflo w_plugin.so scan-file # 1 [^\r\n]+location-overflow-test-pr83173-1.h" 1 FAIL: gcc.dg/plugin/location-overflow-test-pr83173.c -fplugin=./location_overflo w_plugin.so scan-file-not # (?!1 [^\r\n]+location-overflow-test-pr83173-1.h" 1) [0-9]+ [^\r\n]+location-overflow-test-pr83173-1.h" r274926 was okay. This is with r275110.
[Bug c++/91155] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155 --- Comment #10 from Daniel Frey --- Thanks for working on this. I'm a bit confused about the "Known to work: 9.2.0" - shouldn't this be 9.3.0 given that GCC 9.2 was already released and does not contain this fix?
[Bug tree-optimization/91616] Incorrect data address computation in very simple code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91616 --- Comment #3 from Marc POULHIÈS --- Ok, sorry for the incorrect report. The problem was found in our port of GCC where the code actually really accesses an incorrect memory location and seeing this very large offset added to data array lead me to an incorrect conclusion. You can close this PR.
[Bug target/91635] wrong code at -O2 with __builtin_add_overflow() and shifts
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2019-09-02 Ever confirmed|0 |1
[Bug target/91635] wrong code at -O2 with __builtin_add_overflow() and shifts
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635 Jakub Jelinek changed: What|Removed |Added CC||andrew at sifive dot com, ||kito at gcc dot gnu.org, ||palmer at gcc dot gnu.org, ||wilson at gcc dot gnu.org --- Comment #3 from Jakub Jelinek --- Looks like a backend bug to me. Trying 12, 13 -> 14: 12: r85:SI=r72:DI#0<<0x1 REG_DEAD r72:DI 13: r76:DI=zero_extend(r85:SI#0) REG_DEAD r85:SI 14: r87:SI=r76:DI#0 0>>0x1 REG_DEAD r76:DI Failed to match this instruction: (set (subreg:DI (reg:SI 87) 0) (and:DI (reg:DI 72 [ _1 ]) (const_int 32767 [0x7fff]))) Splitting with gen_split_35 Successfully matched this instruction: (set (subreg:DI (reg:SI 87) 0) (ashift:DI (reg:DI 72 [ _1 ]) (const_int 49 [0x31]))) Successfully matched this instruction: (set (subreg:DI (reg:SI 87) 0) (lshiftrt:DI (subreg:DI (reg:SI 87) 0) (const_int 49 [0x31]))) That splitting through gen_split_35 is incorrect in reusing the paradoxical subreg destination for the intermediate result, because in a paradoxical subreg the high bits are undefined, while the splitter relies on them being defined. --- gcc/config/riscv/riscv.md.jj2019-07-08 23:52:53.0 +0200 +++ gcc/config/riscv/riscv.md 2019-09-02 17:18:26.909424288 +0200 @@ -1770,15 +1770,17 @@ [(set (match_operand:GPR 0 "register_operand") (and:GPR (match_operand:GPR 1 "register_operand") (match_operand:GPR 2 "p2m1_shift_operand")))] - "" - [(set (match_dup 0) + "can_create_pseudo_p () || !paradoxical_subreg_p (operands[0])" + [(set (match_dup 3) (ashift:GPR (match_dup 1) (match_dup 2))) (set (match_dup 0) - (lshiftrt:GPR (match_dup 0) (match_dup 2)))] + (lshiftrt:GPR (match_dup 3) (match_dup 2)))] { /* Op2 is a VOIDmode constant, so get the mode size from op1. */ operands[2] = GEN_INT (GET_MODE_BITSIZE (GET_MODE (operands[1])) - exact_log2 (INTVAL (operands[2]) + 1)); + operands[3] += can_create_pseudo_p () ? gen_reg_rtx (mode) : operands[0]; }) ;; Handle AND with 0xF...F0...0 where there are 32 to 63 zeros. This can be @@ -1787,13 +1789,15 @@ [(set (match_operand:DI 0 "register_operand") (and:DI (match_operand:DI 1 "register_operand") (match_operand:DI 2 "high_mask_shift_operand")))] - "TARGET_64BIT" - [(set (match_dup 0) + "TARGET_64BIT + && (can_create_pseudo_p () || !paradoxical_subreg_p (operands[0]))" + [(set (match_dup 3) (lshiftrt:DI (match_dup 1) (match_dup 2))) (set (match_dup 0) - (ashift:DI (match_dup 0) (match_dup 2)))] + (ashift:DI (match_dup 3) (match_dup 2)))] { operands[2] = GEN_INT (ctz_hwi (INTVAL (operands[2]))); + operands[3] = can_create_pseudo_p () ? gen_reg_rtx (DImode) : operands[0]; }) ;; fixes this, but I don't have a way to test riscv, plus the backend has several similar problems elsewhere.
[Bug c++/91155] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155 Martin Liška changed: What|Removed |Added Known to work|9.2.0 |9.2.1 --- Comment #11 from Martin Liška --- (In reply to Daniel Frey from comment #10) > Thanks for working on this. > > I'm a bit confused about the "Known to work: 9.2.0" - shouldn't this be > 9.3.0 given that GCC 9.2 was already released and does not contain this fix? Yes, sorry for the noise.
[Bug tree-optimization/91625] FAIL: gcc.dg/strlenopt-68.c execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91625 --- Comment #2 from dave.anglin at bell dot net --- On 2019-09-01 8:08 p.m., msebor at gcc dot gnu.org wrote: > What value does the function return at runtime? By default, snprintf on HP-UX returns a negative value if maxsize is smaller than the number of characters formatted excluding the terminating null but. This changed in UNIX 2003 to the number of characters that would have been written. Only HP-UX 11.31 for HPPA supports the 2003 behavior. Since the whole test is to verify the behavior of snprintf (0, 0, "%s", I think we might as well skip it on hppa*-*-hpux*.