[Bug debug/86549] [meta-bug] -flto -g0 vs. -g issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86549 Eric Gallager changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #5 from Eric Gallager --- (In reply to Richard Biener from comment #4) > Making a meta-bug, all known issues are fixed. ...so... closing this, too, then. It can be re-opened if new issues falling under it turn up.
[Bug fortran/91641] [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641 --- Comment #2 from kargl at gcc dot gnu.org --- I have a patch.
[Bug middle-end/91433] Performance Regression when upgrading from 8.3.0 to 9.0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91433 Hongtao.liu changed: What|Removed |Added CC||crazylht at gmail dot com --- Comment #4 from Hongtao.liu --- Maybe you can cut a testcase from benchmark which can reproduce this regression. So that people in community can really do some help, orelse we didn't even know what regression it is.
[Bug fortran/91556] Problems with better interface checking
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556 --- Comment #24 from Steve Kargl --- On Mon, Sep 02, 2019 at 06:51:23PM +, anlauf at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556 > > --- Comment #23 from anlauf at gcc dot gnu.org --- > (In reply to Thomas Koenig from comment #22) > > A problem with such code is that type violations like that are likely to > > cause > > actual wrong code issues because much of the aliasing analysis is type > > based... > > > > What I could do is to > > > > a) restrict the number of warnings for each routine to one (put a flag > >Into the gsym) > > > > b) try to figure something out to make this harmless to the middle end... > > like > >passing a void* instead of a reference. > > I do see that there was a motivation for the change. However, I think that > the resolution happens at the wrong time and comes to wrong conclusions. > > The example in comment#14 compiles if I add e.g. > > interface > subroutine my_mpi_bcast_wrapper (buffer, len) >type(*), dimension(..) :: buffer >integer, intent(in):: len > end subroutine my_mpi_bcast_wrapper > end interface > > which I think is the appropriate explicit interface *if* it needs to be > explicitly given. Then the code compiles without any warnings. This is exactly why TYPE(*) was added to the Fortran standard. I would need to good spelunking on the J3 website, but I vaguely recal that Craig Rassmussen from the OpenMP standard committee championed it. From the Fortran 2018 standard An entity that is declared using the TYPE(*) type specifier is assumed-type and is an unlimited polymorphic entity. It is not declared to have a type, and is not considered to have the same declared type as any other entity, including another unlimited polymorphic entity. Its dynamic type and type parameters are assumed from its effective argument. Adding the INTERFACE in the code from comment #14 allows gfortran to use the effective type in the function calls. > > If we just continue to ignore this error, is is going to bite people sooner > > or > > later. And wehn somevody finds that a complex MPI code no longer works, I > > want > > to have that warning in the build log. > > A warning by default would be fine with me, especially when it can be turned > off. I am not happy to make this an error. > (I may have a different opinion for a varying number of arguments to a > procedure.) > > > Also, this sort of code is a major obstacle for LTO, If we do not fix this, > > then > > I might as well give up on making gfortran LTO clean. > > Is the current treatment only necessary for LTO? Of course. Thomas quoted a part of the standard that indicate the code is invalid Fortran. I quoted a different line from the standard that indicates the code is invalid Fortran. gfortran is informing the user the code is broken. > Otherwise, can procedures without explicit interfaces be marked that they > are not eligible to this kind of optimization? It seems that you missed an important aspect of Thomas's patch. It allows one to find suspect subprogram references when the subprograms are implicitly defined. Go read the first 6 comments in the PR. Jurgen had a bug in his code. Thomas's patch generated an error pointing to the problem. With Jurgen's code, there is a big difference in passing a double precision value as opposed to the desired quad precision value. I'm having a hard time understanding why you think gfortran should continue to silently compile invalid, and possibly broken, code instead of actually alerting a user of an issue. I'm having an even harder time understanding why you want to have the ability to completely disable the
[Bug middle-end/91433] Performance Regression when upgrading from 8.3.0 to 9.0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91433 --- Comment #3 from George Fan --- Pls help.
[Bug target/91494] Performance Regression when upgrading from 8.3.0 to 9.0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91494 --- Comment #1 from George Fan --- Please help.
[Bug fortran/91589] [9/10 Regression] ICE in gfc_conv_component_ref, at fortran/trans-expr.c:2447
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91589 --- Comment #2 from Paul Thomas --- Author: pault Date: Mon Sep 2 19:54:02 2019 New Revision: 275324 URL: https://gcc.gnu.org/viewcvs?rev=275324=gcc=rev Log: 2019-09-02 Paul Thomas PR fortran/91589 * primary.c (gfc_match_varspec): Return MATCH_NO on an apparent component ref, when the primary type is intrinsic. 2019-09-02 Paul Thomas PR fortran/91589 * gfortran.dg/pr91589.f90 : New test. Added: trunk/gcc/testsuite/gfortran.dg/pr91589.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/primary.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/91641] [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641 anlauf at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1
[Bug fortran/91641] [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641 anlauf at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P4 Last reconfirmed||2019-9-2 CC||anlauf at gcc dot gnu.org --- Comment #1 from anlauf at gcc dot gnu.org --- Not really a regression as IS_CONTIGUOUS was added in 9.0
[Bug fortran/91556] Problems with better interface checking
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556 --- Comment #23 from anlauf at gcc dot gnu.org --- (In reply to Thomas Koenig from comment #22) > A problem with such code is that type violations like that are likely to > cause > actual wrong code issues because much of the aliasing analysis is type > based... > > What I could do is to > > a) restrict the number of warnings for each routine to one (put a flag >Into the gsym) > > b) try to figure something out to make this harmless to the middle end... > like >passing a void* instead of a reference. I do see that there was a motivation for the change. However, I think that the resolution happens at the wrong time and comes to wrong conclusions. The example in comment#14 compiles if I add e.g. interface subroutine my_mpi_bcast_wrapper (buffer, len) type(*), dimension(..) :: buffer integer, intent(in):: len end subroutine my_mpi_bcast_wrapper end interface which I think is the appropriate explicit interface *if* it needs to be explicitly given. Then the code compiles without any warnings. > If we just continue to ignore this error, is is going to bite people sooner > or > later. And wehn somevody finds that a complex MPI code no longer works, I > want > to have that warning in the build log. A warning by default would be fine with me, especially when it can be turned off. I am not happy to make this an error. (I may have a different opinion for a varying number of arguments to a procedure.) > Also, this sort of code is a major obstacle for LTO, If we do not fix this, > then > I might as well give up on making gfortran LTO clean. Is the current treatment only necessary for LTO? How does LTO handle TYPE(*) etc.? It has to be able to deal with it! Otherwise, can procedures without explicit interfaces be marked that they are not eligible to this kind of optimization?
[Bug fortran/91643] New: [10 Regression] ICE in gfc_trans_create_temp_array, at fortran/trans-array.c:1265
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91643 Bug ID: 91643 Summary: [10 Regression] ICE in gfc_trans_create_temp_array, at fortran/trans-array.c:1265 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Changed between 20190512 and 20190519 at -O[123] : $ cat z1.f90 program p real :: z(3) = [1.0, 2.0, 3.0] call g(z) contains subroutine g(x) real :: x(..) call h(x) end subroutine h(x) real :: x(*) print *, x(1) end end $ gfortran-10-20190512 z1.f90 -O2 && ./a.out 1. $ gfortran-10-20190901 -c z1.f90 -O2 z1.f90:7:0: 7 | call h(x) | internal compiler error: in gfc_trans_create_temp_array, at fortran/trans-array.c:1265 0x6cbb08 gfc_trans_create_temp_array(stmtblock_t*, stmtblock_t*, gfc_ss*, tree_node*, tree_node*, bool, bool, bool, locus*) ../../gcc/fortran/trans-array.c:1265 0x6d61d2 gfc_conv_loop_setup(gfc_loopinfo*, locus*) ../../gcc/fortran/trans-array.c:5234 0x6f8bfe gfc_conv_subref_array_arg(gfc_se*, gfc_expr*, int, sym_intent, bool, gfc_symbol const*, char const*, gfc_symbol*, bool) ../../gcc/fortran/trans-expr.c:4670 0x6dd819 gfc_conv_array_parameter(gfc_se*, gfc_expr*, bool, gfc_symbol const*, char const*, tree_node**) ../../gcc/fortran/trans-array.c:8136 0x6fc518 gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*, gfc_expr*, vec*) ../../gcc/fortran/trans-expr.c:6158 0x732418 gfc_trans_call(gfc_code*, bool, tree_node*, tree_node*, bool) ../../gcc/fortran/trans-stmt.c:406 0x6c4df1 trans_code ../../gcc/fortran/trans.c:1920 0x6ed7a4 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6779 0x6ed5a4 gfc_generate_contained_functions ../../gcc/fortran/trans-decl.c:5783 0x6ed5a4 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6711 0x6775be translate_all_program_units ../../gcc/fortran/parse.c:6253 0x6775be gfc_parse_file() ../../gcc/fortran/parse.c:6492 0x6c14bf gfc_be_parse_file ../../gcc/fortran/f95-lang.c:204
[Bug fortran/91642] New: ICE: Bad IO basetype (transfer_expr, at fortran/trans-io.c:2507)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91642 Bug ID: 91642 Summary: ICE: Bad IO basetype (transfer_expr, at fortran/trans-io.c:2507) Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Affects versions down to at least gfortran-5 : $ cat z1.f90 program p integer :: iol inquire (iolength=iol) null() ! no dedicated length print *, iol end $ gfortran-10-20190901 -c z1.f90 f951: internal compiler error: Bad IO basetype (0) 0x61c001 gfc_internal_error(char const*, ...) ../../gcc/fortran/error.c:1363 0x720129 transfer_expr ../../gcc/fortran/trans-io.c:2507 0x723730 gfc_trans_transfer(gfc_code*) ../../gcc/fortran/trans-io.c:2661 0x6c4cd7 trans_code ../../gcc/fortran/trans.c:2072 0x7211fe build_dt ../../gcc/fortran/trans-io.c:2026 0x6c4cc7 trans_code ../../gcc/fortran/trans.c:2048 0x6ed7a4 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6779 0x6775be translate_all_program_units ../../gcc/fortran/parse.c:6253 0x6775be gfc_parse_file() ../../gcc/fortran/parse.c:6492 0x6c14bf gfc_be_parse_file ../../gcc/fortran/f95-lang.c:204
[Bug fortran/91641] New: [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641 Bug ID: 91641 Summary: [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Changed between 20190106 (silently accepted) and 20190113 (ICE). (null() is not an array) $ cat z1.f90 program p real, pointer :: z(:) print *, is_contiguous (null(z)) end $ gfortran-9-20190106 -c z1.f90 $ $ gfortran-10-20190901 -c z1.f90 z1.f90:3:0: 3 |print *, is_contiguous (null(z)) | internal compiler error: in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857 0x713d4b gfc_conv_is_contiguous_expr(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-intrinsic.c:2857 0x71cc00 gfc_conv_intrinsic_is_contiguous ../../gcc/fortran/trans-intrinsic.c:2836 0x71cc00 gfc_conv_intrinsic_function(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-intrinsic.c:10096 0x701414 gfc_conv_function_expr ../../gcc/fortran/trans-expr.c:7460 0x6f47ea gfc_conv_expr(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-expr.c:8587 0x6fb175 gfc_conv_expr_reference(gfc_se*, gfc_expr*, bool) ../../gcc/fortran/trans-expr.c:8732 0x723717 gfc_trans_transfer(gfc_code*) ../../gcc/fortran/trans-io.c:2582 0x6c4cd7 trans_code ../../gcc/fortran/trans.c:2072 0x7211fe build_dt ../../gcc/fortran/trans-io.c:2026 0x6c4cb7 trans_code ../../gcc/fortran/trans.c:2044 0x6ed7a4 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6779 0x6775be translate_all_program_units ../../gcc/fortran/parse.c:6253 0x6775be gfc_parse_file() ../../gcc/fortran/parse.c:6492 0x6c14bf gfc_be_parse_file ../../gcc/fortran/f95-lang.c:204
[Bug fortran/91640] New: [9/10 Regression] ICE: gimplification failed (contiguous expr)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91640 Bug ID: 91640 Summary: [9/10 Regression] ICE: gimplification failed (contiguous expr) Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Changed between 20190113 and 20190120. For reference a z0_verify.f90 : program p real :: z(3) = 1.0 print *, is_contiguous(z) print *, is_contiguous(-z) print *, is_contiguous(2.0*z) end $ gfortran-10-20190901 z0_verify.f90 && ./a.out T T T Test cases : $ cat z1.f90 program p real :: z(3) = 1.0 call sub (-z) contains subroutine sub (x) real, contiguous :: x(:) end end $ cat z2.f90 program p real :: z(3) = 1.0 call sub (2.0*z) contains subroutine sub (x) real, contiguous :: x(:) end end $ gfortran-9-20190113 -c z1.f90 $ $ gfortran-10-20190901 -c z1.f90 gimplification failed: -_7 unit-size align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fcd729992a0 precision:32 pointer_to_this > arg:0 def_stmt _7 = z[_6]; version:7> z1.f90:3:0 start: z1.f90:3:0 finish: z1.f90:3:0> z1.f90:3:0: 3 |call sub (-z) | internal compiler error: gimplification failed 0x9f6051 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:14144 0xa08c28 gimplify_modify_expr ../../gcc/gimplify.c:5747 0x9f5b0a gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13135 0x9f8d98 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6779 0x9f4c0b gimplify_statement_list ../../gcc/gimplify.c:1849 0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13579 0x9f8d98 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6779 0x9f54ec gimplify_and_add(tree_node*, gimple**) ../../gcc/gimplify.c:480 0x9f54ec gimplify_loop_expr ../../gcc/gimplify.c:1823 0x9f54ec gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13340 0x9f8d98 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6779 0x9f4c0b gimplify_statement_list ../../gcc/gimplify.c:1849 0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13579 0x9f8d98 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6779 0x9f9f03 gimplify_bind_expr ../../gcc/gimplify.c:1417 0x9f4e42 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13336 0x9f8d98 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6779 0x9f4c0b gimplify_statement_list ../../gcc/gimplify.c:1849 0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13579 0x9f8d98 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6779
[Bug c/53075] -Werror=pedantic should be equivalent to -pedantic-errors
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53075 --- Comment #5 from Manuel López-Ibáñez --- (In reply to Kamlesh Kumar from comment #4) > This patch resolves this. No, it doesn't. As the documentation says: -pedantic-errors is not equivalent to @option{-Werror=pedantic}, since there are errors enabled by this option and not enabled by the latter and vice versa. According to the discussion in the email threads above, it is not possible to make them equivalent, one would need to create a new options for everything that is in the disjoint set of -pedantic-errors and -Werror=pedantic (but there may be some bugs worth fixing there to reduce this set). In any case, patches are sent to gcc-patches: https://gcc.gnu.org/wiki/GettingStarted#Basics:_Contributing_to_GCC_in_10_easy_steps
[Bug fortran/91552] ICE with valid array constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91552 kargl at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |9.3 --- Comment #5 from kargl at gcc dot gnu.org --- Fixed on trunk and 9-branch.
[Bug fortran/91552] ICE with valid array constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91552 --- Comment #4 from kargl at gcc dot gnu.org --- Author: kargl Date: Mon Sep 2 17:16:05 2019 New Revision: 275323 URL: https://gcc.gnu.org/viewcvs?rev=275323=gcc=rev Log: 2019-09-02 Steven G. Kargl PR fortran/91552 * array.c (walk_array_constructor): New function. (gfc_match_array_constructor): Use it. 2019-09-02 Steven G. Kargl PR fortran/91552 * gfortran.dg/pr91552.f90: New test. Added: branches/gcc-9-branch/gcc/testsuite/gfortran.dg/pr91552.f90 Modified: branches/gcc-9-branch/gcc/fortran/ChangeLog branches/gcc-9-branch/gcc/fortran/array.c branches/gcc-9-branch/gcc/testsuite/ChangeLog
[Bug target/91604] [10 Regression] ICE in extract_insn at recog.c:2310 since r272323
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91604 Jakub Jelinek changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek --- Created attachment 46799 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46799=edit gcc10-pr91604.patch I can reproduce if I pass -msse2, otherwise I couldn't. Anyway, the problem with this set of command line options is that when adjust_address_1 calls change_address_1, it will do: 417 /* By passing constant addresses through registers 418 we get a chance to cse them. */ 419 if (! cse_not_expected && CONSTANT_P (x) && CONSTANT_ADDRESS_P (x)) 420x = force_reg (address_mode, x); As split_double_mode does that separately for each MEM, we end up with different addresses between what is supposed to be a matching MEM, only some later CSE would optimize it back again, but we run into the recog failure before that. The attached patch fixes it by special casing it in split_double_mode, if we have a rtx_equal_p MEM operand, reuse the previously split operand rather than create it again. Assumes at most one matching MEM, which is I think generally the case in the backend.
[Bug fortran/91552] ICE with valid array constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91552 --- Comment #3 from kargl at gcc dot gnu.org --- Author: kargl Date: Mon Sep 2 16:46:54 2019 New Revision: 275322 URL: https://gcc.gnu.org/viewcvs?rev=275322=gcc=rev Log: 2019-09-02 Steven G. Kargl PR fortran/91552 * array.c (walk_array_constructor): New function. (gfc_match_array_constructor): Use it. 2019-09-02 Steven G. Kargl PR fortran/91552 * gfortran.dg/pr91552.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/pr91552.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/array.c trunk/gcc/testsuite/ChangeLog
[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*.
[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 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 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 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 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 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/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 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 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=gcc=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 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 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/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 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=gcc=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/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=gcc=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=gcc=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=gcc=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 --- 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=gcc=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 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 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/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/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 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 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=gcc=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 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/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 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 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/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 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/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=gcc=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/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=gcc=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=gcc=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=gcc=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=gcc=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/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=gcc=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/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 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 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 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 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 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 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] 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 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 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 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=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, ); 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 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 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=gcc=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=gcc=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=gcc=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 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++/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=gcc=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 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 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=gcc=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 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=gcc=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 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 #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=edit > Proposed wording change LGTM.
[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 #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 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=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 #17 from Eric Botcazou --- Created attachment 46797 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46797=edit Proposed wording change
[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 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 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 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 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=gcc=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 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 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=gcc=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 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 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 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 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 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=gcc=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 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 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.0