[Bug lto/55284] [4.8 Regression] ICE in read_cgraph_and_symbols, at lto/lto.c:2944 (when -MMD is passed)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55284 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug tree-optimization/55022] [4.8 Regression] air.f90 is miscompliled with -m64 -O2 -fgraphite-identity after revision 190619
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55022 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug libquadmath/55462] [4.8 Regression] FAIL: gfortran.dg/quad_2.f90 -O* execution test after revision 193770
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55462 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug fortran/55395] [4.8 Regression] libgfortran bootstrap failure on powerpc-linux-gnu and arm-linux-gnueabi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55395 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug middle-end/55381] [4.8 Regression]: build fails on cris-elf building libgfortran with host-gcc-4.4, ICE compiling matmul_i1.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55381 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug target/55276] [4.8 regression] ppc: callee-saved vector registers not preserved
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55276 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug middle-end/55438] [4.8 Regression]: tmpdir-gcc.dg-struct-layout-1/t001 - t028, gcc.c-torture/execute/991118-1.c, gcc.c-torture/execute/bf64-1.c, ICE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55438 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug c++/55127] [4.8 regression] Incorrect dependent scope error with partial specialization of non-type parameter
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55127 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug other/54691] [4.8 Regression] --enable-checking=valgrind doesn't build
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54691 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug rtl-optimization/55458] [4.8 Regression] ICE: in assign_by_spills, at lra-assigns.c:1212 with -fPIC -m32 and simple asm volatile
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55458 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug other/54814] [4.8 Regression] ICE: unable to find a register to spill in class 'R0_REG'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54814 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug target/54699] [4.8 Regression] [SH] gfortran.dg/class_array_9.f03 ICEs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54699 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug c/55273] [4.8.0 regression] ICE in iv_number_of_iterations, at loop-iv.c:2819
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55273 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug debug/54731] [4.8 regression] arm-elf/arm-eabisim crosses fails in make-check due to undefined LFE references: corrupt debug_line tables
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54731 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug target/55433] [4.8 Regression] ICE on excessive reloads
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55433 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug fortran/55172] [4.7/4.8 Regression] [OOP] ICE on invalid: gfc_variable_attr(): Bad array reference
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55172 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug libstdc++/55043] [4.7/4.8 Regression] issue with nesting unordered_map containing unique_ptr into vector
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55043 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug c++/54744] [4.7/4.8 Regression] internal compiler error: Segmentation fault, by dependent base, member typedef and ctor-initializer
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54744 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug other/55181] [4.7/4.8 Regression] Expensive shift loop where a bit-testing instruction could be used
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55181 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug c++/54801] [4.7/4.8 Regression] static variables constructed with lambda params inside member functions cause undefined errors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54801 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug tree-optimization/55286] [4.7/4.8 Regression] Bytemark ASSIGNMENT 4% - 10% slower
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55286 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug c/54896] [4.7/4.8 Regression] Some optimization slowness with GCC 4.7.2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54896 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug target/55171] [4.7/4.8 Regression] incorrect virtual thunk on mingw
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55171 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3
[Bug fortran/54940] [4.6/4.7/4.8 Regression] ICE in gfc_build_intrinsic_call, at fortran/expr.c:4609
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54940 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.6.4
[Bug target/55033] [4.6/4.7/4.8 Regression] PowerPC section type conflict error
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55033 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.6.4
[Bug fortran/54730] [4.6/4.7/4.8 Regression] ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1066
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54730 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.6.4
[Bug lto/54795] [4.8 Regression] LTO miscompiled external array access
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54795 --- Comment #25 from Richard Biener rguenth at gcc dot gnu.org 2012-11-26 12:24:30 UTC --- (In reply to comment #23) Another problem with revision 191466 is we lost debug info on cl_options. With revision 191465, I got (gdb) whatis cl_options type = const struct cl_option [1221] (gdb) After revision 191466, I got (gdb) whatis cl_option type = cl_option (gdb) This means that somewhere there is a cl_option definition that may prevail that has size 1. lto_symtab_resolve_symbols is supposed to pick the largest one. The cl_options definition that matters is in options.c, created const struct cl_option cl_options[] = { ... } maybe it's size isn't finished? Also || (DECL_SIZE (prevailing-symbol.decl) == DECL_SIZE (e-symbol.decl) is fragile - use tree_int_cst_eq. I suppose we don't have anything like a testcase?
[Bug middle-end/52650] [4.8 Regression] FAIL: gcc.dg/torture/pr51106-2.c * (internal compiler error)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52650 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Component|lto |middle-end Version|4.7.2 |4.8.0 Target Milestone|3.0.x |4.8.0
[Bug tree-optimization/54894] [4.6/4.7 Regression] internal compiler error: in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1286
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54894 --- Comment #8 from Richard Biener rguenth at gcc dot gnu.org 2012-11-26 14:26:16 UTC --- Author: rguenth Date: Mon Nov 26 14:26:07 2012 New Revision: 193816 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193816 Log: 2012-11-26 Richard Biener rguent...@suse.de Backport from mainline 2012-10-19 Richard Biener rguent...@suse.de PR tree-optimization/54976 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Robustify against odd inner_mode inputs. 2012-10-12 Richard Biener rguent...@suse.de PR tree-optimization/54894 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Handle over-aligned scalar types properly. 2012-10-02 Richard Guenther rguent...@suse.de PR middle-end/54735 * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before cleaning up the CFG. 2012-10-12 Richard Biener rguent...@suse.de PR tree-optimization/54894 * gcc.dg/torture/pr54894.c: New testcase. 2012-10-02 Richard Guenther rguent...@suse.de PR middle-end/54735 * g++.dg/torture/pr54735.C: New testcase. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/torture/pr54735.C branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/torture/pr54894.c Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/testsuite/ChangeLog branches/gcc-4_7-branch/gcc/tree-ssa-pre.c branches/gcc-4_7-branch/gcc/tree-vect-stmts.c
[Bug tree-optimization/54735] [4.7 Regression] Segmentation fault in walk_aliased_vdefs_1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54735 --- Comment #15 from Richard Biener rguenth at gcc dot gnu.org 2012-11-26 14:26:18 UTC --- Author: rguenth Date: Mon Nov 26 14:26:07 2012 New Revision: 193816 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193816 Log: 2012-11-26 Richard Biener rguent...@suse.de Backport from mainline 2012-10-19 Richard Biener rguent...@suse.de PR tree-optimization/54976 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Robustify against odd inner_mode inputs. 2012-10-12 Richard Biener rguent...@suse.de PR tree-optimization/54894 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Handle over-aligned scalar types properly. 2012-10-02 Richard Guenther rguent...@suse.de PR middle-end/54735 * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before cleaning up the CFG. 2012-10-12 Richard Biener rguent...@suse.de PR tree-optimization/54894 * gcc.dg/torture/pr54894.c: New testcase. 2012-10-02 Richard Guenther rguent...@suse.de PR middle-end/54735 * g++.dg/torture/pr54735.C: New testcase. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/torture/pr54735.C branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/torture/pr54894.c Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/testsuite/ChangeLog branches/gcc-4_7-branch/gcc/tree-ssa-pre.c branches/gcc-4_7-branch/gcc/tree-vect-stmts.c
[Bug tree-optimization/54976] [4.8 Regression] FAIL: gcc.dg/torture/pr47975.c (internal compiler error)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54976 --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-11-26 14:26:16 UTC --- Author: rguenth Date: Mon Nov 26 14:26:07 2012 New Revision: 193816 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193816 Log: 2012-11-26 Richard Biener rguent...@suse.de Backport from mainline 2012-10-19 Richard Biener rguent...@suse.de PR tree-optimization/54976 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Robustify against odd inner_mode inputs. 2012-10-12 Richard Biener rguent...@suse.de PR tree-optimization/54894 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Handle over-aligned scalar types properly. 2012-10-02 Richard Guenther rguent...@suse.de PR middle-end/54735 * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before cleaning up the CFG. 2012-10-12 Richard Biener rguent...@suse.de PR tree-optimization/54894 * gcc.dg/torture/pr54894.c: New testcase. 2012-10-02 Richard Guenther rguent...@suse.de PR middle-end/54735 * g++.dg/torture/pr54735.C: New testcase. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/torture/pr54735.C branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/torture/pr54894.c Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/testsuite/ChangeLog branches/gcc-4_7-branch/gcc/tree-ssa-pre.c branches/gcc-4_7-branch/gcc/tree-vect-stmts.c
[Bug tree-optimization/54735] [4.7 Regression] Segmentation fault in walk_aliased_vdefs_1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54735 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #16 from Richard Biener rguenth at gcc dot gnu.org 2012-11-26 14:27:09 UTC --- Fixed.
[Bug tree-optimization/54894] [4.6 Regression] internal compiler error: in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1286
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54894 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Known to work||4.7.2 Summary|[4.6/4.7 Regression]|[4.6 Regression] internal |internal compiler error: in |compiler error: in |vect_get_vec_def_for_operan |vect_get_vec_def_for_operan |d, at |d, at |tree-vect-stmts.c:1286 |tree-vect-stmts.c:1286 Known to fail||4.7.1 --- Comment #9 from Richard Biener rguenth at gcc dot gnu.org 2012-11-26 14:27:23 UTC --- Fixed for 4.7 as well.
[Bug lto/55466] [4.8 Regression] Revision 191466 destroyed DWARF debug info
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55466 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug lto/55466] [4.8 Regression] Revision 191466 destroyed DWARF debug info
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55466 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-26 15:57:37 UTC --- (In reply to comment #1) /export/project/git/gcc-regression-bootstrap/master/191466/bld/gcc/cc1...done. (gdb) whatis global_options type = data variable, no debug info (gdb) whatis cl_options type = data variable, no debug info (gdb) whatis cl_enums type = data variable, no debug info (gdb) whatis cl_enums_count type = data variable, no debug info (gdb) whatis global_options_set type = data variable, no debug info (gdb) whatis sched_max_luid type = data variable, no debug info (gdb) Hmm, I suppose this is because we no longer merge symbols that are not part of symtab, but used only for debugging Honza global_options is certainly used. Aggressively removing unused vars is ok even if that drops debug info for them.
[Bug tree-optimization/54935] No way to do if converison
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54935 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-11-27 Ever Confirmed|0 |1 --- Comment #6 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 09:16:01 UTC --- ISTR the argument that one can do mprotect on allocated memory, thus one way to relax this is to see if the access is to a decl and check if that resides in .rodata. Other than that there is of course the issue of introducing store data races - thus if !write_memrefs_written_at_least_once we may not introduce an unconditional store in the C++ memory model (or in the transactional memory model).
[Bug middle-end/55331] [4.6/4.7/4.8 Regression] ICE: SIGSEGV in substitute_and_fold with -O2 -fno-tree-fre
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55331 --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 09:20:07 UTC --- Author: rguenth Date: Tue Nov 27 09:20:02 2012 New Revision: 193839 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193839 Log: 2012-11-27 Richard Biener rguent...@suse.de PR middle-end/55331 * gimple-fold.c (gimplify_and_update_call_from_tree): Replace stmt with a NOP instead of removing it. * g++.dg/opt/pr55331.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/opt/pr55331.C Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-fold.c trunk/gcc/testsuite/ChangeLog
[Bug middle-end/55331] [4.6/4.7/4.8 Regression] ICE: SIGSEGV in substitute_and_fold with -O2 -fno-tree-fre
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55331 --- Comment #5 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 09:23:19 UTC --- Author: rguenth Date: Tue Nov 27 09:23:15 2012 New Revision: 193840 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193840 Log: 2012-11-27 Richard Biener rguent...@suse.de PR middle-end/55331 * gimple-fold.c (gimplify_and_update_call_from_tree): Replace stmt with a NOP instead of removing it. * g++.dg/opt/pr55331.C: New testcase. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/opt/pr55331.C Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/gimple-fold.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug middle-end/55331] [4.6 Regression] ICE: SIGSEGV in substitute_and_fold with -O2 -fno-tree-fre
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55331 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Known to work||4.7.3, 4.8.0 Summary|[4.6/4.7/4.8 Regression]|[4.6 Regression] ICE: |ICE: SIGSEGV in |SIGSEGV in |substitute_and_fold with|substitute_and_fold with |-O2 -fno-tree-fre |-O2 -fno-tree-fre Known to fail|4.7.3, 4.8.0|4.7.2 --- Comment #6 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 10:14:21 UTC --- Fixed for trunk and 4.7 sofar.
[Bug middle-end/55477] [devirt] trunk fails inline-devirt tests #2 and and #3 whereas they pass in google/4_7
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55477 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||missed-optimization --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 10:19:18 UTC --- I suppose pristine 4.7 branch fails to devirtualize as well, right?
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-11-27 Target Milestone|--- |4.8.0 Ever Confirmed|0 |1 --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 10:40:45 UTC --- Infinite loops are a sign for out-of-bound array accesses, 4.8 now very aggressively exploits undefined behavior that this triggers. Btw, it also happens when I declare data8 as int8_t data8[SIZE*2 ]; so it does look like genuine bug in GCC. It loops in #0 0x004009cc in test_constantsigned char, custom_or_constantssigned char (count=13, label=0x4012da int8_t or constants, first=0x6020d0 data8 '\001' repeats 13 times) at benchmark_shared_tests.h:661 btw.
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 --- Comment #5 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 10:41:34 UTC --- Created attachment 28790 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28790 reduced testcase Reduced testcase attached.
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 --- Comment #6 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 11:02:39 UTC --- More reduced testcase, fails when compiled at -O2 with the C++ frontend, passes compiled with the C frontend ... typedef signed char int8_t; extern void abort (void); #define SIZE 13 double init_value = 1.0; int8_t data8[SIZE]; static inline int8_t __attribute__((always_inline)) do_shift(int8_t input) { return ((int8_t)(23) | (int8_t)(10)); } int main(int argc, char** argv) { int8_t *first = data8; int8_t *last = data8+SIZE; while (first != last) *first++ = (int8_t)(init_value); first = data8; int i; for(i = 0; i 1000; ++i) { int8_t result = 0; int n; for (n = 0; n SIZE; ++n) result += do_shift( first[n] ); int8_t temp = (int8_t)SIZE * do_shift((int8_t)init_value); if (result != temp) abort (); } return 0; }
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Depends on||35634 --- Comment #7 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 11:12:03 UTC --- Note that the frontends warn with lucky13x.c: In function 'int main(int, char**)': lucky13x.c:24:64: warning: overflow in implicit constant conversion [-Woverflow] int8_t temp = (int8_t)SIZE * ((int8_t)(23) | (int8_t)(10)); when manually inlining do_shift at the checking point: int8_t temp = (int8_t)SIZE * ((int8_t)(23) | (int8_t)(10)); if (result != temp) abort (); this computes 13 * 31 which is 403 so the warning is correct. Fixed with an extra cast. This also means that for (n = 0; n SIZE; ++n) result += do_shift( first[n] ); triggers the bug about doing the addition in the wrong type and the bug is fixed by rewriting this as result = result + do_shift (first[n]); that is, self-modify is not correctly doing the addition in 'int'. And thus this is a dup of PR35634 I believe (-fwrapv also fixes this).
[Bug c/35634] [4.6/4.7/4.8 Regression] operand of pre-/postin-/decrement not promoted
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35634 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Blocks|55481 | AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | --- Comment #35 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 12:25:02 UTC --- Mine.
[Bug middle-end/55478] [devirt] trunk fails inline-devirt test #4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55478 --- Comment #5 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 13:39:57 UTC --- Well, the loop isn't unrolled until late cunroll after which there is no SRA / FRE to fix things up. No, DOM doesn't get it by implementation limitation. As for the PRE issue - we indeed seem to not release SSA temporaries created by PRE. I'll look into that.
[Bug rtl-optimization/55489] [4.7 regression] insane PRE memory usage with PIE (translate.i)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55489 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Known to work||4.4.6, 4.8.0 Target Milestone|--- |4.7.3 Known to fail||4.7.2
[Bug c/35634] [4.6/4.7/4.8 Regression] operand of pre-/postin-/decrement not promoted
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35634 --- Comment #36 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 14:56:56 UTC --- Created attachment 28794 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28794 first patch updated With the first patch updated to apply again and to instead of promoting doing arithmetic in an unsigned type still causes +FAIL: gcc.dg/vect/pr18536.c scan-tree-dump-times vect vectorized 1 loops 1 +FAIL: gcc.dg/vect/vect-iv-8.c scan-tree-dump-times vect vectorized 1 loops 1 +FAIL: gcc.dg/vect/vect-iv-8a.c scan-tree-dump-times vect vectorized 1 loops 1 +FAIL: gcc.dg/vect/pr18536.c -flto scan-tree-dump-times vect vectorized 1 loop s 1 +FAIL: gcc.dg/vect/vect-iv-8.c -flto scan-tree-dump-times vect vectorized 1 lo ops 1 +FAIL: gcc.dg/vect/vect-iv-8a.c -flto scan-tree-dump-times vect vectorized 1 l oops 1 which is better compared to doing the promotion: +FAIL: gcc.dg/vect/pr18536.c scan-tree-dump-times vect vectorized 1 loops 1 +FAIL: gcc.dg/vect/vect-iv-8.c scan-tree-dump-times vect vectorized 1 loops 1 +FAIL: gcc.dg/vect/vect-iv-8a.c scan-tree-dump-times vect vectorized 1 loops 1 +FAIL: gcc.dg/vect/vect-reduc-dot-u16a.c scan-tree-dump-times vect vectorized 1 loops 2 +FAIL: gcc.dg/vect/slp-21.c scan-tree-dump-times vect vectorized 4 loops 1 +FAIL: gcc.dg/vect/slp-21.c scan-tree-dump-times vect vectorizing stmts using S LP 2 +FAIL: gcc.dg/vect/slp-perm-9.c scan-tree-dump-times vect vectorized 1 loops 1 +FAIL: gcc.dg/vect/slp-reduc-3.c scan-tree-dump-times vect vectorized 1 loops 2 +FAIL: gcc.dg/vect/pr18536.c -flto scan-tree-dump-times vect vectorized 1 loop s 1 +FAIL: gcc.dg/vect/vect-iv-8.c -flto scan-tree-dump-times vect vectorized 1 lo ops 1 +FAIL: gcc.dg/vect/vect-iv-8a.c -flto scan-tree-dump-times vect vectorized 1 l oops 1 +FAIL: gcc.dg/vect/vect-reduc-dot-u16a.c -flto scan-tree-dump-times vect vecto rized 1 loops 2 +FAIL: gcc.dg/vect/slp-21.c -flto scan-tree-dump-times vect vectorized 4 loops 1 +FAIL: gcc.dg/vect/slp-21.c -flto scan-tree-dump-times vect vectorizing stmts using SLP 2 +FAIL: gcc.dg/vect/slp-perm-9.c -flto scan-tree-dump-times vect vectorized 1 l oops 1 +FAIL: gcc.dg/vect/slp-reduc-3.c -flto scan-tree-dump-times vect vectorized 1 loops 2 +FAIL: gcc.dg/vect/no-scevccp-outer-19.c scan-tree-dump-times vect OUTER LOOP V ECTORIZED. 1 note that the gimple semantics change patch will play foul with decltype / sizeof ( char += char ) where it likely will result in the promoted type rather than char.
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 --- Comment #8 from Richard Biener rguenth at gcc dot gnu.org 2012-11-27 16:10:29 UTC --- The following even more reduced testcase is not fixed by the patch pending for PR35634. typedef signed char int8_t; #define SIZE 13 static inline int8_t do_shift() { return 31; } int main(int argc, char** argv) { int i; for(i = 0; i 1000; ++i) { int8_t result = 0; int n; for (n = 0; n SIZE; ++n) result += do_shift(); int8_t temp = (int8_t)((int8_t)SIZE * ((int8_t)(23) | (int8_t)(10))); if (result != temp) __builtin_abort (); } return 0; } With the C++ frontend we correctly do D.2194 = do_shift (); D.2207 = (int) result; D.2208 = (int) D.2194; D.2209 = D.2207 + D.2208; result = (int8_t) D.2209; anyway, but then IVOPTs comes around and changes it: bb 4: # result_17 = PHI result_8(3), 0(7) - # n_18 = PHI n_9(3), 0(7) - # ivtmp_12 = PHI ivtmp_13(3), 13(7) _6 = (int) result_17; _7 = _6 + 31; - result_8 = (int8_t) _7; - n_9 = n_18 + 1; - ivtmp_13 = ivtmp_12 - 1; - if (ivtmp_13 != 0) + _1 = result_17 + 31; + result_8 = _1; + if (result_8 != -109) goto bb 3; performing the computation in int8_t again which causes VRP to miscompile the test.
[Bug c/35634] [4.6/4.7/4.8 Regression] operand of pre-/postin-/decrement not promoted
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35634 --- Comment #37 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 09:27:14 UTC --- Author: rguenth Date: Wed Nov 28 09:27:10 2012 New Revision: 193882 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193882 Log: 2012-11-28 Richard Biener rguent...@suse.de PR c/35634 * gimple.h (gimplify_self_mod_expr): Declare. * gimplify.c (gimplify_self_mod_expr): Export. Take a different type for performing the arithmetic in. (gimplify_expr): Adjust. * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Strip sign conversions we can re-apply after adjusting the IV. c-family/ * c-gimplify.c (c_gimplify_expr): Gimplify self-modify expressions here and use a type with proper overflow behavior for types that would need to be promoted for the arithmetic. * gcc.dg/torture/pr35634.c: New testcase. * g++.dg/torture/pr35634.C: Likewise. * gcc.dg/vect/pr18536.c: Mark worker function noinline. Added: trunk/gcc/testsuite/g++.dg/torture/pr35634.C trunk/gcc/testsuite/gcc.dg/torture/pr35634.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c-gimplify.c trunk/gcc/gimple.h trunk/gcc/gimplify.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/vect/pr18536.c trunk/gcc/tree-vect-loop-manip.c
[Bug c/35634] [4.6/4.7 Regression] operand of pre-/postin-/decrement not promoted
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35634 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Known to work||4.8.0 Summary|[4.6/4.7/4.8 Regression]|[4.6/4.7 Regression] |operand of |operand of |pre-/postin-/decrement not |pre-/postin-/decrement not |promoted|promoted Known to fail||4.6.3, 4.7.2 --- Comment #38 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 09:28:17 UTC --- Fixed for 4.8.0. Unlikely going to be backported.
[Bug regression/55327] [4.8 regression] FAIL: gcc.dg/vect/slp-perm-8.c scan-tree-dump-times vect vectorized 1 loops 2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55327 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 09:32:35 UTC --- Author: rguenth Date: Wed Nov 28 09:32:30 2012 New Revision: 193883 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193883 Log: 2012-11-28 Richard Biener rguent...@suse.de PR testsuite/55327 * gcc.dg/vect/slp-perm-8.c: Mark worker as noinline. * gcc.dg/vect/slp-perm-9.c: Likewise. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/vect/slp-perm-8.c trunk/gcc/testsuite/gcc.dg/vect/slp-perm-9.c
[Bug testsuite/55327] [4.8 regression] FAIL: gcc.dg/vect/slp-perm-8.c scan-tree-dump-times vect vectorized 1 loops 2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55327 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Component|regression |testsuite Resolution||FIXED Target Milestone|--- |4.8.0 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 09:33:12 UTC --- Fixed (hopefully).
[Bug tree-optimization/54547] [4.8 regression] FAIL: gcc.dg/tree-ssa/pr37508.c scan-tree-dump-times vrp1 Folding 3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54547 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Target Milestone|--- |4.8.0 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 09:52:42 UTC --- I seem to remember the test is quite fragile even on x86 (though it passes there at the moment). It depends on whether fold converted some of the memory accesses to BIT_FIELD_REFs or not. For x86 we see: test1 (struct foo1 * x) { int _1; unsigned char _4; unsigned char _5; unsigned char _6; bb 2: _4 = BIT_FIELD_REF *x_3(D), 8, 0; _5 = _4 1; if (_5 == 0) goto bb 5; else goto bb 3; bb 3: _6 = ASSERT_EXPR _5, _5 != 0; but for arm: test1 (struct foo1 * x) { int _1; unnamed-signed:1 _4; unnamed-signed:1 _5; bb 2: _4 = x_3(D)-i; if (_4 != 0) goto bb 3; else goto bb 5; bb 3: _5 = ASSERT_EXPR _4, _4 != 0; if (_5 == -1) and for x86 we get then Found new range for _6: [1, 1] while arm has Found new range for _5: ~[0, +INF] (it prefers ~[0,0] over [-1,-1], but doesn't know to simplify ~[0,0] == -1 for 1-bit ranges). I'll try to fix that.
[Bug tree-optimization/54547] [4.8 regression] FAIL: gcc.dg/tree-ssa/pr37508.c scan-tree-dump-times vrp1 Folding 3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54547 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 12:18:47 UTC --- Author: rguenth Date: Wed Nov 28 12:18:39 2012 New Revision: 193888 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193888 Log: 2012-11-28 Richard Biener rguent...@suse.de PR tree-optimization/54547 * tree-vrp.c (set_and_canonicalize_value_range): Handle 1-bit anti-ranges explicitely. (extract_range_from_assert): Properly canonicalize all built anti-ranges. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-vrp.c
[Bug tree-optimization/54547] [4.8 regression] FAIL: gcc.dg/tree-ssa/pr37508.c scan-tree-dump-times vrp1 Folding 3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54547 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 12:19:11 UTC --- Fixed.
[Bug other/55517] New: [ASAN] ASAN doesn't work with (soft) ulimit on virtual memory
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55517 Bug #: 55517 Summary: [ASAN] ASAN doesn't work with (soft) ulimit on virtual memory Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org The asan runtime should raise any soft limit on virtual memory by the amount of shadow virtual mappings it creates. Those are not accounted for in any limit calculation. If a hard limit is present it should probably report that instead of failing with a cryptic message that it cannot allocate memory: ==10720== ERROR: Failed to allocate 0x2001000 (2199023259648) bytes at address 0x0000 (12)
[Bug c++/55513] [4.7 Regression] Incorrect snprintf folding when building with -std=c++0x
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55513 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.7.3 Known to fail||4.7.0 --- Comment #3 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 12:35:16 UTC --- Seems to be simply folded away.
[Bug bootstrap/55511] [4.8 Regression] r193802 caused s390x bootstrap failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55511 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0 Summary|r193802 caused s390x|[4.8 Regression] r193802 |bootstrap failure |caused s390x bootstrap ||failure
[Bug middle-end/55507] [4.8 Regression] ICE in vt_expand_var_loc_chain, at var-tracking.c:8020
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55507 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug c++/55494] ICE for char array or int in variadic template
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55494 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||ice-on-valid-code Target Milestone|4.8.0 |---
[Bug lto/55493] [4.8 Regression] LTO always ICEs on i686-w64-mingw32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55493 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug other/55517] [ASAN] ASAN doesn't work with (soft) ulimit on virtual memory
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55517 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 12:48:56 UTC --- (In reply to comment #1) I am quite sure that asan should not mess with the limits itself. It gets too messy too soon. (e.g. in tsan we try to reexec if the stack is unlimited, but it's not reliable). Well, raising a soft virtual limit should be straight-forward if you create such large mappings. SLES ships with a default soft virtual limit, and only asan knows how much extra shadow memory it needs. I agree, the messages could be less cryptic. It btw causes c-c++-common/asan/memcmp-1.c to FAIL in all my tests which is quite annoying because the addresses printed in the message vary and thus testresults are not comparable.
[Bug sanitizer/55517] [ASAN] ASAN doesn't work with (soft) ulimit on virtual memory
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55517 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added CC||dodji at gcc dot gnu.org, ||dvyukov at gcc dot gnu.org, ||jakub at gcc dot gnu.org, ||kcc at gcc dot gnu.org Component|other |sanitizer --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 12:52:55 UTC --- (In reply to comment #3) [The component for such bugs should be 'sanitizer' but for some reason I can't change it] Ah, I searched for libasan and didn't find it. You can manage bugs if you login with your gcc.gnu.org account (or in the first place create one with your gcc.gnu.org e-mail address).
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 --- Comment #9 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 15:14:20 UTC --- Testcase that fails (infinite loop) with both the C and the C++ frontend at -O2: int main() { signed char result = 0; int n; for (n = 0; n 13; ++n) { int tem = result; tem = tem + 31; result = tem; } if (result != -109) __builtin_abort (); return 0; }
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 --- Comment #10 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 15:16:00 UTC --- Caused by 2012-06-27 Richard Guenther rguent...@suse.de PR middle-end/53676 * tree-chrec.c (chrec_convert_1): Represent truncation to a type with undefined overflow as truncation to an unsigned type converted to the type with undefined overflow. * tree-scalar-evolution.c (interpret_rhs_expr): For computing the scalar evolution of a truncated widened operation avoid looking at the non-existing evolution of the widened operation result.
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | --- Comment #11 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 15:16:51 UTC --- Mine.
[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55481 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added CC||rakdver at gcc dot gnu.org --- Comment #12 from Richard Biener rguenth at gcc dot gnu.org 2012-11-28 15:38:46 UTC --- We have @@ -15,22 +15,11 @@ (scalar = result_11) (get_scalar_evolution (scalar = result_11) - (scalar_evolution = result_11)) + (scalar_evolution = (signed char) {0, +, 31}_1)) that isn't wrong. But IVOPTs happily uses STRIP_NOPs which also strips sign-conversions. simple_iv returns true for result_11 in signed char result; bb 3: # result_11 = PHI result_5(4), 0(2) # ivtmp_10 = PHI ivtmp_9(4), 13(2) tem_3 = (int) result_11; tem_4 = tem_3 + 31; result_5 = (signed char) tem_4; ivtmp_9 = ivtmp_10 - 1; if (ivtmp_9 != 0) goto bb 4; else goto bb 5; bb 4: goto bb 3; now, but iv-no_overflow is false (and IVOPTs nowhere uses that flag ...). I can fix this for example with Index: tree-ssa-loop-ivopts.c === --- tree-ssa-loop-ivopts.c (revision 193887) +++ tree-ssa-loop-ivopts.c (working copy) @@ -982,6 +982,9 @@ determine_biv_step (gimple phi) if (!simple_iv (loop, loop, name, iv, true)) return NULL_TREE; + if (!iv.no_overflow) +return NULL_TREE; + return integer_zerop (iv.step) ? NULL_TREE : iv.step; } but I'm not sure what invariants should hold for BIVs and if the overflow check should happen in a different place instead. Zdenek?
[Bug lto/55525] ICE: tree check: expected array_type, have pointer_type in array_ref_low_bound, at expr.c:6768
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55525 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2012-11-29 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #3 from Richard Biener rguenth at gcc dot gnu.org 2012-11-29 08:53:09 UTC --- Mine. I suppose we could simply error out for the mismatch. The issue here is of course that we simply substitute the prevailing declaration into expressions that expect the mismatching type. Let me think a bit more about this.
[Bug tree-optimization/55524] If fnma exists but not fms, convert_mult_to_fma should prefer to former over the latter.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55524 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-11-29 Ever Confirmed|0 |1 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-29 08:53:22 UTC --- Confirmed.
[Bug other/55523] gencondmd C++ conversion breaks peephole2 predicates use of get_attr_*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55523 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-11-29 08:54:31 UTC --- This is rather a bug in the machine description I think. Isn't there a target header that is included from the generated files?
[Bug target/55522] -funsafe-math-optimizations is unexpectedly harmful, especially w/ -shared
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target||x86_64-*-*, i?86-*-* Status|UNCONFIRMED |NEW Last reconfirmed||2012-11-29 Component|middle-end |target Version|unknown |4.6.3 Ever Confirmed|0 |1 Severity|normal |enhancement --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-29 08:57:15 UTC --- I think crtfastmath.o should not be used when linking with -shared.
[Bug target/55527] Passing structures containing floats by value in calls are underoptimized
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55527 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target||x86_64-*-* Status|UNCONFIRMED |NEW Last reconfirmed||2012-11-29 Component|other |target Ever Confirmed|0 |1 Severity|normal |enhancement --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-11-29 10:03:26 UTC --- Confirmed. It's a mess from expansion on (assembly is better with -mtune=core2 which avoids going through the stack). It's of course an ABI issue - I'm not sure where to best look for opportunities to optimize this.
[Bug tree-optimization/55124] [4.8 Regression] ICE in find_or_generate_expression, at tree-ssa-pre.c:2803
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55124 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added AssignedTo|vries at gcc dot gnu.org|rguenth at gcc dot gnu.org --- Comment #7 from Richard Biener rguenth at gcc dot gnu.org 2012-11-29 14:35:08 UTC --- To summarize here, the issue is that PRE insertion (and also expression clean and dependent_clean, but not really phi-translation) need to process expression set from leafs (where the dependence tree is formed by the value-ids of the expressions). In ancient times this might have been ensured by sorting expressions after their value-id (sorted_array_from_bitmap_set), but at least with SCCVN there is no such thing as a topological value-id assignment. Thus, the correct fix is indeed to properly sort the expression array according to expression dependencies. Which then allows to get rid of value-ids in SCCVN and compute them lazily in get_expr_value_id. I'll take over from Tom here again.
[Bug debug/55541] [4.6/4.7/4.8 Regression] unable to see local variables due extra lexical block was generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55541 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-11-30 Known to work||4.1.2 Target Milestone|--- |4.6.4 Summary|unable to see local |[4.6/4.7/4.8 Regression] |variables due extra lexical |unable to see local |block was generated |variables due extra lexical ||block was generated Ever Confirmed|0 |1 Known to fail||4.6.3, 4.7.2, 4.8.0 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-30 09:21:48 UTC --- Confirmed. If I enable any optimization level, like for example -Og on trunk, I get: (gdb) start Temporary breakpoint 1 at 0x4005a0: file t.C, line 5. Starting program: /tmp/t Temporary breakpoint 1, main () at t.C:5 5 } (gdb) p i No symbol i in current context.
[Bug tree-optimization/55124] [4.8 Regression] ICE in find_or_generate_expression, at tree-ssa-pre.c:2803
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55124 --- Comment #8 from Richard Biener rguenth at gcc dot gnu.org 2012-11-30 12:33:03 UTC --- This issue is latent and papered over heavily by find_or_generate_expression which does static tree find_or_generate_expression (basic_block block, tree op, gimple_seq *stmts) { pre_expr expr = get_or_alloc_expr_for (op); unsigned int lookfor = get_expr_value_id (expr); pre_expr leader = bitmap_find_leader (AVAIL_OUT (block), lookfor); if (leader) { if (leader-kind == NAME) return PRE_EXPR_NAME (leader); else if (leader-kind == CONSTANT) return PRE_EXPR_CONSTANT (leader); } /* It must be a complex expression, so generate it recursively. */ bitmap exprset = value_expressions[lookfor]; bitmap_iterator bi; unsigned int i; EXECUTE_IF_SET_IN_BITMAP (exprset, 0, i, bi) { pre_expr temp = expression_for_id (i); if (temp-kind != NAME) return create_expression_by_pieces (block, temp, stmts, get_expr_type (expr)); } thus - it picks some _random_ expression and tries to generate it. Most of the time it happens to pick the correct one. In theory - with proper insert ordering - we should never end up here with no leader, we should never even end up with a complex leader either! (in fact bitmap_find_leader should, according to its documentation, never return a complex leader) Now, for tree-ssa/ssa-pre-28.c we have bb 2: if (b_2(D) != 0) goto bb 5; else goto bb 3; bb 5: goto bb 4; bb 3: bb 4: # mask_1 = PHI -2(5), 0(3) result_4 = i_3(D) + 1; result_5 = mask_1 result_4; return result_5; we start to try inserting both i_3(D) + 1 and mask_1 result_4 (simplified to 0 in bb3!) in bb 5. But i_3(D) + 1 is neither available in bb3 nor in bb5 so we don't insert it. This means upon trying to insert mask_1 result_4 in bb 5 we don't find a leader for result_4 because we didn't insert the expression (we thought it was not profitable or necessary to do so). Which means insertion works in an awkward way currently. It seems it should compute which expressions it likes to insert (and where, and using the translated expressions) and then add value-dependencies out of that set. And only in a second step actually perform the insertions (but then in proper order).
[Bug middle-end/55545] New: [4.8 Regression] Incredibly large compile-time performance regression on IA64 compiling 253.perlbmk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55545 Bug #: 55545 Summary: [4.8 Regression] Incredibly large compile-time performance regression on IA64 compiling 253.perlbmk Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org Target: ia64-*-linux compiling SPEC 2000 253.perlbmk: cpu2000/result/log.17027: Elapsed compile for '253.perlbmk': 00:00:17 (17) cpu2000/result/log.17031: Elapsed compile for '253.perlbmk': 00:00:14 (14) cpu2000/result/log.17031: Elapsed compile for '253.perlbmk': 00:00:45 (45) cpu2000/result/log.17035: Elapsed compile for '253.perlbmk': 00:00:15 (15) cpu2000/result/log.17035: Elapsed compile for '253.perlbmk': 00:00:17 (17) cpu2000/result/log.17039: Elapsed compile for '253.perlbmk': 00:00:14 (14) cpu2000/result/log.17039: Elapsed compile for '253.perlbmk': 00:00:44 (44) cpu2000/result/log.17043: Elapsed compile for '253.perlbmk': 03:00:02 (10802) cpu2000/result/log.17043: Elapsed compile for '253.perlbmk': 03:00:04 (10804) cpu2000/result/log.17047: Elapsed compile for '253.perlbmk': 03:00:02 (10802) cpu2000/result/log.17047: Elapsed compile for '253.perlbmk': 03:00:22 (10822) ls -l cpu2000/result/log.17039 -rw-rw-r-- 1 gcctest suse 747601 Nov 14 10:26 cpu2000/result/log.17039 ls -l cpu2000/result/log.17043 -rw-rw-r-- 1 gcctest suse 558857 Nov 16 03:18 cpu2000/result/log.17043
[Bug middle-end/55545] [4.8 Regression] Incredibly large compile-time performance regression on IA64 compiling 253.perlbmk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55545 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug middle-end/55545] [4.8 Regression] Incredibly large compile-time performance regression on IA64 compiling 253.perlbmk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55545 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-11-30 13:11:38 UTC --- (In reply to comment #1) Do you also have revision numbers in those logs? Unfortunately not, but I can see that rev. 193357 was definitely ok and rev. 193534 definitely broken. Maybe rev. 193429 also was still ok, but I'm not sure on that. Happens with both -O3 (base flags) and -O3 -funroll-loops -fpeel-loops (peak flags). In the larger revision range the only suspicious patches are the one for PR51447 and the gcse reg-pressure work from Bin Cheng. It seems to be compiling build-disjuncts.c btw.
[Bug middle-end/55545] [4.8 Regression] Incredibly large compile-time performance regression on IA64 compiling 253.perlbmk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55545 --- Comment #3 from Richard Biener rguenth at gcc dot gnu.org 2012-11-30 13:15:17 UTC --- (In reply to comment #2) It seems to be compiling build-disjuncts.c btw. which is from 197.parser - where the compiler currently is after two hours (but in schedule_block this time). So maybe that's an entirely different issue (no compile-time regression recorded for 197.parser in past logfiles).
[Bug middle-end/55545] [4.8 Regression] Incredibly large compile-time performance regression on IA64 compiling 253.perlbmk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55545 --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-11-30 13:16:36 UTC --- Oh, and 1080x seems to be what ulimit -t is for these jobs - thus this are endless loops.
[Bug c++/55573] [4.8 Regression] ICE in adjust_temp_type, at cp/semantics.c:6454
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55573 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug bootstrap/55571] [4.6/4.7/4.8 regression] PR48076 fix broke bootstrap on armv5tel-linux-gnueabi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55571 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P1 Known to work||4.6.3 Known to fail||4.6.4
[Bug c/55570] [4.7/4.8 regression] Undefined variable in alignment compiler directive causes compiler segfault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55570 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|4.8.0 |4.7.3
[Bug tree-optimization/55569] [4.8 Regression] ICE: in check_probability, at basic-block.h:944 with -ftree-vectorize
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55569 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug bootstrap/55566] [4.8 regression] segfault during build (related to recent vec re-implementation?)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55566 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||INVALID Target Milestone|--- |4.8.0 --- Comment #11 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 11:40:50 UTC --- I suppose invalid then.
[Bug tree-optimization/55559] [4.6/4.7/4.8 Regression] Marshalling double through union with inlines, incorrect behavior with -O2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Known to work||4.3.6 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Target Milestone|--- |4.6.4 Summary|Marshalling double through |[4.6/4.7/4.8 Regression] |union with inlines, |Marshalling double through |incorrect behavior with -O2 |union with inlines, ||incorrect behavior with -O2 --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 11:43:53 UTC --- Mine then.
[Bug gcov-profile/55551] Revision 193999 breaks lto/profiledbootstrap
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #11 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 11:45:59 UTC --- Fixed.
[Bug middle-end/55546] Static functions that are fully inlined can end up in the object file
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55546 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Keywords||missed-optimization Last reconfirmed||2012-12-03 Component|c |middle-end CC||hubicka at gcc dot gnu.org, ||rguenth at gcc dot gnu.org Ever Confirmed|0 |1 Known to fail||4.8.0 Severity|normal |enhancement --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 11:49:41 UTC --- That can trivially happen if the not usedness address-taken is discovered too late by the compiler to temove the function. Testcase confirmed.
[Bug tree-optimization/55559] [4.6/4.7/4.8 Regression] Marshalling double through union with inlines, incorrect behavior with -O2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords|wrong-code | Status|ASSIGNED|RESOLVED Resolution||INVALID --- Comment #5 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 12:30:20 UTC --- We ask fold_unary to fold fold_unary_ignore_overflow_loc (loc=2147483655, code=FIX_TRUNC_EXPR, type=0x76d17690, op0=0x76e23858) at /space/rguenther/src/svn/trunk/gcc/fold-const.c:8363 (gdb) call debug_tree (type) integer_type 0x76d17690 unsigned int public unsigned SI size integer_cst 0x76d1a0c0 type integer_type 0x76d170a8 bitsizetype constant 32 unit size integer_cst 0x76d1a0e0 type integer_type 0x76d17000 sizetype constant 4 align 32 symtab 0 alias set -1 canonical type 0x76d17690 precision 32 min integer_cst 0x76d1a100 0 max integer_cst 0x76d1a0a0 4294967295 pointer_to_this pointer_type 0x76d270a8 (gdb) call debug_tree (op0) real_cst 0x76e23858 type real_type 0x76d17f18 double sizes-gimplified DF size integer_cst 0x76d02d40 constant 64 unit size integer_cst 0x76d02d60 constant 8 align 64 symtab 0 alias set -1 canonical type 0x76d17f18 precision 64 pointer_to_this pointer_type 0x76d1f150 constant -1.0e+0 which ends up in fold_convert_const_int_from_real which returns 0 with TREE_OVERFLOW set. Note that you end up converting the double -1.0 to unsigned which according to C99 6.3.1.4 ends up invoking undefined behavior. GCC's behavior is not ill-defined, your testcase is. That behavior changed is fine as it is unsefined.
[Bug tree-optimization/55124] [4.8 Regression] ICE in find_or_generate_expression, at tree-ssa-pre.c:2803
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55124 --- Comment #9 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 14:42:46 UTC --- Ok, instead of rewriting this mess during stage3 I'll re-instantiate the failure path (but consistently) of expression insertion so that in this case we defer to a further insert iteration to fixup things. I have to keep the odd code for ssa-pre-28.c though to not regress here.
[Bug tree-optimization/54877] [4.7 Regression] ICE: tree check: expected ssa_name, have real_cst in copy_ssa_name_fn, at tree-ssanames.c:335
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54877 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #7 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 15:01:04 UTC --- Fixed.
[Bug target/15184] [4.6/4.7/4.8 Regression] Direct access to byte inside word not working with -march=pentiumpro
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15184 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P2
[Bug target/49423] [4.6/4.7/4.8 Regression] [arm] internal compiler error: in push_minipool_fix
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49423 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P2
[Bug target/52630] [4.7 regression] ICE when compiling ppl-0.12 testsuite
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52630 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||WORKSFORME --- Comment #6 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 15:22:03 UTC --- No response from reporter.
[Bug target/52911] [4.6/4.7/4.8 Regression] gcc 4.7.0 (ppc32 e500mc) when compile a c file, after a lot of time, gcc failed and internal compiler error occurs.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52911 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target|ppc32 e500mc|powerpc-*-linux e500mc Priority|P3 |P2 Status|UNCONFIRMED |NEW Keywords||ice-on-valid-code Last reconfirmed||2012-12-03 Host|ppc32 e500mc|hwi32 Ever Confirmed|0 |1 Known to fail||4.7.1 Build|ppc32 e500mc|
[Bug libstdc++/53218] [4.7 regression] cmake segfaults on sparcv9
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53218 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||INVALID --- Comment #7 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 15:26:18 UTC --- No response from reporter.
[Bug tree-optimization/53571] [4.6/4.7 regression] ICE with -O{2,3} -floop-parallelize-all in cloog_domain_stride()
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53571 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P2 Status|WAITING |NEW Known to work||4.8.0 Summary|[4.6/4.7/4.8 regression]|[4.6/4.7 regression] ICE |ICE with -O{2,3}|with -O{2,3} |-floop-parallelize-all in |-floop-parallelize-all in |cloog_domain_stride() |cloog_domain_stride() --- Comment #5 from Richard Biener rguenth at gcc dot gnu.org 2012-12-03 15:31:24 UTC --- Works with ISL based Graphite, still broken on the 4.7 branch at least.
[Bug middle-end/53623] [4.7/4.8 Regression] sign extension is effectively split into two x86-64 instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53623 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||missed-optimization Priority|P3 |P2 Known to work||4.6.3
[Bug tree-optimization/53636] [4.7 Regression] SLP may create invalid unaligned memory accesses
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53636 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||wrong-code Priority|P3 |P2