[Bug fortran/42359] ICEs with specification function and init expression
--- Comment #2 from burnus at gcc dot gnu dot org 2010-09-12 09:25 --- (In reply to comment #1) (ii) An automatic array cannot have an initialization expression. I disagree: Initialization expressions should be allowed (= compile-time constant) - but specification expressions not. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42359
[Bug fortran/43665] INTENT(IN) etc. optimization of calls: function annotations for noclobber/noescape arguments
--- Comment #24 from burnus at gcc dot gnu dot org 2010-09-12 09:32 --- (In reply to comment #23) I have applied the patch in comment #21 without regression, but the test case from attachment 21265 [edit] fails: - create_fn_spec (sym, type); + type = create_fn_spec (sym, type); as in the original patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43665
[Bug tree-optimization/45470] [4.6 Regression] ICE: verify_flow_info failed: BB 2 can not throw but has an EH edge with -ftree-vectorize -fnon-call-exceptions
--- Comment #9 from irar at il dot ibm dot com 2010-09-12 09:46 --- OK, thanks. I am going to test this patch, it only checks data-refs and function calls: Index: tree-vect-data-refs.c === --- tree-vect-data-refs.c (revision 164227) +++ tree-vect-data-refs.c (working copy) @@ -2542,6 +2542,17 @@ vect_analyze_data_refs (loop_vec_info lo offset = unshare_expr (DR_OFFSET (dr)); init = unshare_expr (DR_INIT (dr)); + if (stmt_could_throw_p (stmt)) +{ + if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS)) +{ + fprintf (vect_dump, not vectorized: statement can throw an + exception ); + print_gimple_stmt (vect_dump, stmt, 0, TDF_SLIM); +} + return false; +} + /* Update DR field in stmt_vec_info struct. */ /* If the dataref is in an inner-loop of the loop that is considered for Index: tree-vect-stmts.c === --- tree-vect-stmts.c (revision 164227) +++ tree-vect-stmts.c (working copy) @@ -1343,6 +1343,9 @@ vectorizable_call (gimple stmt, gimple_s if (TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME) return false; + if (stmt_could_throw_p (stmt)) +return false; + vectype_out = STMT_VINFO_VECTYPE (stmt_info); /* Process function arguments. */ Thanks, Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45470
[Bug fortran/43665] INTENT(IN) etc. optimization of calls: function annotations for noclobber/noescape arguments
--- Comment #25 from dominiq at lps dot ens dot fr 2010-09-12 10:13 --- - create_fn_spec (sym, type); + type = create_fn_spec (sym, type); as in the original patch. With this change the test succeeds. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43665
[Bug c++/45651] New: internal compiler error: in import_export_decl, at cp/decl2.c:2344
r...@kusumanchi:/home/593456# cat error.cpp namespace { template int T struct A {}; } template int T struct B { void f(AT); }; template struct B1; templateint T void BT::f(AT) {} r...@kusumanchi:/home/593456# /usr/lib/gcc-snapshot/bin/g++ -v error.cpp Using built-in specs. COLLECT_GCC=/usr/lib/gcc-snapshot/bin/g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc-snapshot/libexec/gcc/i486-linux-gnu/4.6.0/lto-wrapper Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 20100828-1' --with-bugurl=file:///usr/share/doc/gcc-snapshot/README.Bugs --enable-languages=c,ada,c++,fortran,objc,obj-c++ --prefix=/usr/lib/gcc-snapshot --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --disable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --disable-werror --enable-checking=yes --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.6.0 20100828 (experimental) [trunk revision 163616] (Debian 20100828-1) COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=i586' /usr/lib/gcc-snapshot/libexec/gcc/i486-linux-gnu/4.6.0/cc1plus -quiet -v -D_GNU_SOURCE error.cpp -quiet -dumpbase error.cpp -mtune=generic -march=i586 -auxbase error -version -o /tmp/ccQKGBGy.s GNU C++ (Debian 20100828-1) version 4.6.0 20100828 (experimental) [trunk revision 163616] (i486-linux-gnu) compiled by GNU C version 4.6.0 20100828 (experimental) [trunk revision 163616], GMP version 4.3.2, MPFR version 3.0.0-p3, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 ignoring nonexistent directory /usr/local/include/i486-linux-gnu ignoring nonexistent directory /usr/lib/gcc-snapshot/lib/gcc/i486-linux-gnu/4.6.0/../../../../i486-linux-gnu/include ignoring nonexistent directory /usr/include/i486-linux-gnu #include ... search starts here: #include ... search starts here: /usr/lib/gcc-snapshot/lib/gcc/i486-linux-gnu/4.6.0/../../../../include/c++/4.6.0 /usr/lib/gcc-snapshot/lib/gcc/i486-linux-gnu/4.6.0/../../../../include/c++/4.6.0/i486-linux-gnu /usr/lib/gcc-snapshot/lib/gcc/i486-linux-gnu/4.6.0/../../../../include/c++/4.6.0/backward /usr/lib/gcc-snapshot/lib/gcc/i486-linux-gnu/4.6.0/include /usr/local/include /usr/lib/gcc-snapshot/include /usr/lib/gcc-snapshot/lib/gcc/i486-linux-gnu/4.6.0/include-fixed /usr/include End of search list. GNU C++ (Debian 20100828-1) version 4.6.0 20100828 (experimental) [trunk revision 163616] (i486-linux-gnu) compiled by GNU C version 4.6.0 20100828 (experimental) [trunk revision 163616], GMP version 4.3.2, MPFR version 3.0.0-p3, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 4e52e07a42ee405526b1bbb53d4dbd43 error.cpp: In instantiation of 'void BT::f({anonymous}::AT) [with int T = 1]': error.cpp:3:17: instantiated from here error.cpp:4:37: internal compiler error: in import_export_decl, at cp/decl2.c:2344 Please submit a full bug report, with preprocessed source if appropriate. See file:///usr/share/doc/gcc-snapshot/README.Bugs for instructions. This bug was originally reported at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593456 . The bug seems to be present since gcc-4.3. Please let me know if you need any further information. -- Summary: internal compiler error: in import_export_decl, at cp/decl2.c:2344 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kamaraju at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45651
[Bug tree-optimization/40150] ICE in cgraph_estimate_size_after_inlining, at ipa-inline.c:188 with -combine
--- Comment #3 from kamaraju at gmail dot com 2010-09-12 12:51 --- When I tried with 4.6.0 20100828, I get the ICE at a different place. /usr/lib/gcc-snapshot/bin/gcc -std=gnu99 -O3 -fwhole-program -combine lv2log.i sim-common.i flight-computer.i physics.i pressure_sensor.i sensors.i resample-optimal.i coord.i mat.i vec.i isaac.i random.i normal.i normal_tab.i polynomial.i polynomial_tab.i -lm -o lv2log physics.c: In function 'gravity_force': physics.c:23:6: error: invalid conversion in return statement union vec3 union vec3 return retval; physics.c:23:6: internal compiler error: verify_gimple failed Please submit a full bug report, with preprocessed source if appropriate. See file:///usr/share/doc/gcc-snapshot/README.Bugs for instructions. /usr/lib/gcc-snapshot/bin/gcc -v Using built-in specs. COLLECT_GCC=/usr/lib/gcc-snapshot/bin/gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc-snapshot/libexec/gcc/i486-linux-gnu/4.6.0/lto-wrapper Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 20100828-1' --with-bugurl=file:///usr/share/doc/gcc-snapshot/README.Bugs --enable-languages=c,ada,c++,fortran,objc,obj-c++ --prefix=/usr/lib/gcc-snapshot --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --disable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --disable-werror --enable-checking=yes --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.6.0 20100828 (experimental) [trunk revision 163616] (Debian 20100828-1) However, the reduced test case by Richard Guenther in comment #2 /usr/lib/gcc-snapshot/bin/gcc -c -std=gnu99 -O -combine lv2log.i sim-common.i compiles with no errors. -- kamaraju at gmail dot com changed: What|Removed |Added CC||kamaraju at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40150
[Bug tree-optimization/45639] [4.6 Regression] /usr/ccs/bin/ld: Data address is out of range for short load or store
--- Comment #2 from danglin at gcc dot gnu dot org 2010-09-12 13:06 --- Caused by same change as on SPARC. *** This bug has been marked as a duplicate of 45612 *** -- danglin at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45639
[Bug bootstrap/45612] [4.6 regression] Reference to undefined label building libada on Solaris 2/SPARC
--- Comment #5 from danglin at gcc dot gnu dot org 2010-09-12 13:06 --- *** Bug 45639 has been marked as a duplicate of this bug. *** -- danglin at gcc dot gnu dot org changed: What|Removed |Added CC||danglin at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45612
[Bug ada/45568] [4.6 Regression] stack overflow (or erroneous memory access) building gnattools
--- Comment #1 from danglin at gcc dot gnu dot org 2010-09-12 13:28 --- This bug was introduced in 163808. It no longer occurs on trunk, probably because of the subsequent changes to tree-ssa-ccp.c (fold_const_aggregate_ref). -- danglin at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45568
[Bug tree-optimization/35618] [4.3 regression] ICE in cgraph_estimate_size_after_inlining, at ipa-inline.c:188
--- Comment #14 from kamaraju at gmail dot com 2010-09-12 13:39 --- The reduced test case in comment #8, with options -c -Os -fno-unit-at-a-time, does not ICE in gcc 4.4.5 20100909, gcc 4.6.0 20100828. But it gives an ICE with gcc 4.3.5. Also, for sched.i, with options -c -Os -fno-unit-at-a-time, there is no ICE with gcc 4.4.5 20100909, gcc 4.6.0 20100828. But it gives an ICE with gcc 4.3.5. Just FYI. -- kamaraju at gmail dot com changed: What|Removed |Added CC||kamaraju at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35618
[Bug c++/45651] internal compiler error: in import_export_decl, at cp/decl2.c:2344
-- steven at gcc dot gnu dot org changed: What|Removed |Added CC||jason at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2010-09-12 13:40:14 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45651
[Bug c++/45651] [4.3 / 4.4 / 4.5 / 4.6 Regression] ICE in import_export_decl, at cp/decl2.c:2344
--- Comment #1 from paolo dot carlini at oracle dot com 2010-09-12 13:46 --- Happens in 4_2-branch too, 4_1-branch was fine. -- paolo dot carlini at oracle dot com changed: What|Removed |Added Summary|internal compiler error: in |[4.3 / 4.4 / 4.5 / 4.6 |import_export_decl, at |Regression] ICE in |cp/decl2.c:2344 |import_export_decl, at ||cp/decl2.c:2344 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45651
[Bug rtl-optimization/44281] [4.3/4.4/4.5/4.6 Regression] Global Register variable pessimisation
--- Comment #4 from pinskia at gcc dot gnu dot org 2010-09-12 14:11 --- This is caused by revision 160124: Not really, it is a noreturn function so the behavior is correct for our policy of allowing a more correct backtrace for noreturn functions. The testcase is a incorrect one based on size and not really that interesting anymore with respect of global register variables. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44281
[Bug target/45548] Add with carry - missed optimization on x86
--- Comment #2 from tmartsum at gmail dot com 2010-09-12 15:01 --- With Subtraction the situation is very similar: struct Skew1 // Even { unsigned long long data; unsigned long unused; }; struct Skew2 // Odd { unsigned long unused; unsigned long long data; }; struct ULongLongLong { union { unsigned long m_data[3]; Skew1 m_rep1; Skew2 m_rep2; }; ULongLongLong() { m_data[0]=0; m_data[1]=0; m_data[2]=0; } void print() { std::cout m_data[0] , m_data[1] , m_data[2] \n;} // void addtest(const ULongLongLong b); // operator += void subtest(const ULongLongLong b); // operator -= }; It gives the following code: .globl _ZN13ULongLongLong7subtestERKS_ .type _ZN13ULongLongLong7subtestERKS_, @function _ZN13ULongLongLong7subtestERKS_: .LFB965: .cfi_startproc .cfi_personality 0x0,__gxx_personality_v0 pushl %ebp .cfi_def_cfa_offset 8 movl%esp, %ebp .cfi_offset 5, -8 .cfi_def_cfa_register 5 movl12(%ebp), %edx movl8(%ebp), %eax pushl %ebx xorl%ebx, %ebx .cfi_offset 3, -12 movl(%edx), %ecx subl%ecx, (%eax) sbbl%ebx, 4(%eax) xorl%ebx, %ebx movl4(%edx), %ecx subl%ecx, 4(%eax) sbbl%ebx, 8(%eax) movl8(%edx), %edx subl%edx, 8(%eax) popl%ebx popl%ebp ret .cfi_endproc This could be optimized (just like the addition). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45548
[Bug testsuite/45361] gcc.target/i386/volatile-2.c failed
--- Comment #11 from davek at gcc dot gnu dot org 2010-09-12 15:05 --- Still FAILing on i686-pc-cygwin (and presumably any other nonpic ix86 targets): FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_0((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_1((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_2((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_3((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_4((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_5((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t]obj_5((%rip))?, FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_6((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_7((%rip))? FAIL: gcc.target/i386/volatile-2.c scan-assembler movl[ \\t][^,]+, obj_8((%rip))? -- davek at gcc dot gnu dot org changed: What|Removed |Added CC||davek at gcc dot gnu dot org Status|RESOLVED|REOPENED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45361
[Bug testsuite/43959] [4.6 Regression] FAIL: gcc.dg/torture/builtin-cproj-1.c -O1 (test for excess errors)
--- Comment #10 from dave at hiauly1 dot hia dot nrc dot ca 2010-09-12 15:38 --- Subject: Re: [4.6 Regression] FAIL: gcc.dg/torture/builtin-cproj-1.c -O1 (test for excess errors) I have simplified the testcase to include just the two failing portions from line 160. Some other lines also have failing portions. I have attached the simplified testcase, 080t.cplxlower, and the generated .s at -O1. I'm not sure things go wrong in 080t.cplxlower but it differs substantially from what I see on x86. Dave --- Comment #11 from dave at hiauly1 dot hia dot nrc dot ca 2010-09-12 15:38 --- Created an attachment (id=21778) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21778action=view) --- Comment #12 from dave at hiauly1 dot hia dot nrc dot ca 2010-09-12 15:38 --- Created an attachment (id=21779) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21779action=view) --- Comment #13 from dave at hiauly1 dot hia dot nrc dot ca 2010-09-12 15:38 --- Created an attachment (id=21780) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21780action=view) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43959
[Bug fortran/29602] [F2003] I/O specifiers can now be of any kind
--- Comment #2 from jvdelisle at gcc dot gnu dot org 2010-09-12 15:38 --- When we break abi for kind=8 recl, we should fix all of these. I will assign to myself so I don't forget. Moving out of enhancement status. -- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jvdelisle at gcc dot gnu dot |dot org |org Severity|enhancement |normal Status|NEW |ASSIGNED Last reconfirmed|2006-10-26 08:31:50 |2010-09-12 15:38:56 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29602
[Bug rtl-optimization/45652] New: [4.6 Regression] gcc.dg/compat/scalar-by-value-3 FAILs with -O2 -fselective-scheduling2
I don't know how much is this related to PR43494. This one is failing with -fselective-scheduling2 and with different target. Also it started failing just few revisions ago. Compiler output: $ cd gcc/testsuite/gcc.dg/compat $ gcc -O2 -fselective-scheduling2 scalar-by-value-3_main.c scalar-by-value-3_x.c scalar-by-value-3_y.c $ ./a.out Aborted (fails with -O[23s]) Tested revisions: r164228 - fail r163636 - fail r161659 - OK Reduced testcase to follow. -- Summary: [4.6 Regression] gcc.dg/compat/scalar-by-value-3 FAILs with -O2 -fselective-scheduling2 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: zsojka at seznam dot cz GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45652
[Bug fortran/30123] Document INQUIRE, especially UNFORMATTED and FORMATTED
--- Comment #3 from jvdelisle at gcc dot gnu dot org 2010-09-12 15:42 --- Adding to my list -- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jvdelisle at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2007-02-16 16:19:38 |2010-09-12 15:42:44 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30123
[Bug rtl-optimization/45652] [4.6 Regression] gcc.dg/compat/scalar-by-value-3 FAILs with -O2 -fselective-scheduling2
--- Comment #1 from zsojka at seznam dot cz 2010-09-12 15:44 --- Created an attachment (id=21781) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21781action=view) reduced testcase $ /mnt/svn/gcc-trunk/binary-163636-lto-fortran-checking-yes-rtl-df/bin/gcc -O2 -fselective-scheduling2 pr45652.c $ ./a.out Aborted -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45652
[Bug fortran/31139] sum(w_re(1:nn,1)*fi(i(1:nn, ii))) up to 3.5x slower than C version
--- Comment #7 from jvdelisle at gcc dot gnu dot org 2010-09-12 15:45 --- I have not tested this with latest trunk, but I wonder if any of the recent optimization work has improved this. Can it be closed yet? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31139
[Bug fortran/36841] Eliminate gfortran_sum_r8 call for calculation involving multidimensional array multiplication followed by a sum along first dimension
--- Comment #2 from jvdelisle at gcc dot gnu dot org 2010-09-12 16:14 --- Is this something for the FE to do? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36841
[Bug fortran/36841] Eliminate gfortran_sum_r8 call for calculation involving multidimensional array multiplication followed by a sum along first dimension
--- Comment #3 from steven at gcc dot gnu dot org 2010-09-12 17:14 --- This is not a job for the FE. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36841
[Bug tree-optimization/45653] New: [4.6 Regression] ICE: in cgraph_decide_inlining_of_small_functions, at ipa-inline.c:1241 with -fno-early-inlining -fno-ipa-cp -fno-ipa-pure-const
Command line: $ gcc -O2 -fno-early-inlining -fno-ipa-cp -fno-ipa-pure-const testcase.C Compiler output: $ gcc -O2 -fno-early-inlining -fno-ipa-cp -fno-ipa-pure-const testcase.C testcase.C:20:1: internal compiler error: in cgraph_decide_inlining_of_small_functions, at ipa-inline.c:1241 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. Tested revisions: r164228 - crash r163636 - crash r161659 - crash -- Summary: [4.6 Regression] ICE: in cgraph_decide_inlining_of_small_functions, at ipa- inline.c:1241 with -fno-early-inlining -fno-ipa-cp -fno- ipa-pure-const Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: zsojka at seznam dot cz GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45653
[Bug tree-optimization/45653] [4.6 Regression] ICE: in cgraph_decide_inlining_of_small_functions, at ipa-inline.c:1241 with -fno-early-inlining -fno-ipa-cp -fno-ipa-pure-const
--- Comment #1 from zsojka at seznam dot cz 2010-09-12 17:55 --- Created an attachment (id=21782) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21782action=view) reduced testcase $ gcc -O2 -fno-early-inlining -fno-ipa-cp -fno-ipa-pure-const pr45653.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45653
[Bug tree-optimization/45653] [4.6 Regression] ICE: in cgraph_decide_inlining_of_small_functions, at ipa-inline.c:1241 with -fno-early-inlining -fno-ipa-cp -fno-ipa-pure-const
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.6.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45653
[Bug rtl-optimization/45652] [4.6 Regression] gcc.dg/compat/scalar-by-value-3 FAILs with -O2 -fselective-scheduling2
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.6.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45652
[Bug c++/45651] [4.3/4.4/4.5/4.6 Regression] ICE in import_export_decl, at cp/decl2.c:2344
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.3.6 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45651
[Bug target/45650] [4.3/4.4/4.5/4.6 regression] FreeBSD/ia64 builds fails: hidden symbol `_Unwind_FindTableEntry' isn't defined
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added GCC target triplet||ia64-unknown-freebsd9.0 Target Milestone|--- |4.3.6 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45650
[Bug testsuite/45361] gcc.target/i386/volatile-2.c failed
--- Comment #12 from howarth at nitro dot med dot uc dot edu 2010-09-12 18:49 --- (In reply to comment #11) Still FAILing on i686-pc-cygwin (and presumably any other nonpic ix86 targets): This was fixed at... r163685 | uros | 2010-08-31 13:32:23 -0400 (Tue, 31 Aug 2010) | 3 lines * gcc.target/i386/volatile-2.c: Require nonpic target. on darwin. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45361
[Bug testsuite/45361] gcc.target/i386/volatile-2.c failed
--- Comment #13 from davek at gcc dot gnu dot org 2010-09-12 19:55 --- (In reply to comment #12) (In reply to comment #11) Still FAILing on i686-pc-cygwin (and presumably any other nonpic ix86 targets): This was fixed at... r163685 | uros | 2010-08-31 13:32:23 -0400 (Tue, 31 Aug 2010) | 3 lines * gcc.target/i386/volatile-2.c: Require nonpic target. on darwin. The patch in comment #3 broke the (previously passing) test for all ix86 targets. It seems strange to try and remedy that by disabling the test for nonpic targets (as the change at r163685 does), rather than by disabling the test for ix86 targets, and indeed the consequence is that the test is not, in fact, disabled for all ix86 targets, such as i686-pc-cygwin. I tested r.164046. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45361
[Bug fortran/36841] Eliminate gfortran_sum_r8 call for calculation involving multidimensional array multiplication followed by a sum along first dimension
--- Comment #4 from dominiq at lps dot ens dot fr 2010-09-12 19:56 --- This is not a job for the FE. How could the middle-end do the job if __gfortran_sum_r8 is not inlined/scalarized (see pr43829)? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36841
[Bug web/43011] Upgrade gcc.gnu.org/bugzilla to Bugzilla 3.6
--- Comment #46 from LpSolit at netscape dot net 2010-09-12 20:24 --- I read the patch attached to this bug, and I created a TODO list from it: http://gcc.gnu.org/bugzilla-test/buglist.cgi?quicksearch=%3ABugzilla Tell me if some of these features are no longer needed, to not make me waste my time. Also file a bug (on the test installation) if I missed something which should be ported to the new installation. I intentionally ignored all scripts in the contrib/ directory, because I'm pretty sure everything can already be accomplished with the official email_in.pl script. There are also some minor tweaks which I ignored as they don't seem important enough, at least for now. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43011
[Bug rtl-optimization/44919] ICE on ia64 with -O3 at sel-sched.c:4672
--- Comment #11 from amonakov at gcc dot gnu dot org 2010-09-12 20:34 --- Subject: Bug 44919 Author: amonakov Date: Sun Sep 12 20:34:26 2010 New Revision: 164234 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164234 Log: Backport from mainline 2010-09-06 Andrey Belevantsev a...@ispras.ru PR rtl-optimization/44919 * sel-sched.c (move_cond_jump): Remove assert, check that the several blocks case can only happen with mutually exclusive insns instead. Rewrite the movement code to support moving through several basic blocks. * g++.dg/opt/pr44919.C: New. Added: branches/gcc-4_5-branch/gcc/testsuite/g++.dg/opt/pr44919.C Modified: branches/gcc-4_5-branch/gcc/ChangeLog branches/gcc-4_5-branch/gcc/sel-sched.c branches/gcc-4_5-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44919
[Bug rtl-optimization/44919] ICE on ia64 with -O3 at sel-sched.c:4672
--- Comment #12 from amonakov at gcc dot gnu dot org 2010-09-12 20:36 --- Subject: Bug 44919 Author: amonakov Date: Sun Sep 12 20:35:53 2010 New Revision: 164235 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164235 Log: Backport from mainline 2010-09-06 Andrey Belevantsev a...@ispras.ru PR rtl-optimization/44919 * sel-sched.c (move_cond_jump): Remove assert, check that the several blocks case can only happen with mutually exclusive insns instead. Rewrite the movement code to support moving through several basic blocks. * g++.dg/opt/pr44919.C: New. Added: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/opt/pr44919.C Modified: branches/gcc-4_4-branch/gcc/ChangeLog branches/gcc-4_4-branch/gcc/sel-sched.c branches/gcc-4_4-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44919
[Bug rtl-optimization/44919] ICE on ia64 with -O3 at sel-sched.c:4672
--- Comment #13 from amonakov at gcc dot gnu dot org 2010-09-12 20:38 --- Fixed on release branches with above commits. -- amonakov at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44919
[Bug fortran/36841] Eliminate gfortran_sum_r8 call for calculation involving multidimensional array multiplication followed by a sum along first dimension
--- Comment #5 from steven at gcc dot gnu dot org 2010-09-12 21:24 --- OK, I thought you meant that this would be something for a separate Fortran front end optimization pass. Expanding SUM differently is a job for the FE, yes. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36841
[Bug middle-end/45325] [4.6 Regression] target attribute doesn't work with -march=i586
--- Comment #6 from davek at gcc dot gnu dot org 2010-09-12 23:45 --- This is also present on i686-pc-cygwin: FAIL: gcc.target/i386/pr38240.c (internal compiler error) ICE happens here: (gdb) bt #0 0x006065e0 in convert_move (to=0x7fcc26c0, from=0x7fcc26d0, unsignedp=0) at /gnu/gcc/gcc-unpatched/gcc/expr.c:2944 #1 0x00609d2f in store_expr (exp=0x7fde2c10, target=0x7fcc26c0, call_param_p=0, nontemporal=0 '\0') at /gnu/gcc/gcc-unpatched/gcc/expr.c:2944 #2 0x0060f638 in expand_assignment (to=0x7fe20050, from=0x7fde2c10, nontemporal=0 '\0') at /gnu/gcc/gcc-unpatched/gcc/expr.c:2944 (...yes, the line number info is wrong, don't know why but it's unrelated.) The patch in r162918 tightens up the condition on calling emit_block_move: --- trunk/gcc/expr.c2010/08/05 15:39:54 162917 +++ trunk/gcc/expr.c2010/08/05 16:37:38 162918 @@ -4752,11 +4752,14 @@ { int unsignedp = TYPE_UNSIGNED (TREE_TYPE (exp)); if (GET_MODE (target) == BLKmode - || GET_MODE (temp) == BLKmode) + GET_MODE (temp) == BLKmode) emit_block_move (target, temp, expr_size (exp), (call_param_p ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL)); + else if (GET_MODE (target) == BLKmode) + store_bit_field (target, INTVAL (expr_size (exp)) * BITS_PER_UNIT, +0, GET_MODE (temp), temp); else convert_move (target, temp, unsignedp); } so that when temp is BLKmode and target is not, as in this case: (gdb) call debug_rtx (to) # aka target (mem/c/i:V4SF (reg/f:SI 58 [ D.1753 ]) [0 retval+0 S16 A128]) (gdb) call debug_rtx (from) # aka temp (mem/c/i:BLK (plus:SI (reg/f:SI 54 virtual-stack-vars) (const_int -16 [0xfff0])) [0 D.1747+0 S16 A128]) ... it falls through into the final else clause, and calls convert_move. However convert_move is unable to handle any BLKmode data at all: it has these asserts near the beginning, gcc_assert (to_mode != BLKmode); gcc_assert (from_mode != BLKmode); .. and the second one fires. -- davek at gcc dot gnu dot org changed: What|Removed |Added CC||davek at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45325
[Bug rtl-optimization/44281] [4.3/4.4/4.5/4.6 Regression] Global Register variable pessimisation
--- Comment #5 from adam at consulting dot net dot nz 2010-09-13 00:24 --- Andrew Pinski wrote: This is caused by revision 160124: Not really, it is a noreturn function so the behavior is correct for our policy of allowing a more correct backtrace for noreturn functions. I'm not sure what you're trying to say here Andrew. Are you trying to justify -O3 generating slower code to simplify debugging? The testcase is a incorrect one based on size If you mean zero-extension of 32-bit function pointers, this is the x86-64 small code model. If you mean that you don't care that the testcase increased in size without further benchmarking then empirical analysis is actually unnecessary. The generated assembly is clearly worse. and not really that interesting anymore with respect of global register variables. It's another example of global register variables being copied for no good reason whatsoever. RAX is free and the obvious translation of uint32_t next = Iptr[1]; to x86-64 assembly is mov eax,DWORD PTR [rbp+0x4]; (Intel syntax, where RBP is the global register variable). Generating mov rax,rbp; mov eax,DWORD PTR [rax+0x4]; is just dumb. I've been experimenting with optimal forms of virtual machine dispatch for a long time and what you have is a fragment of a very fast direct threaded interpreter. So fast in fact that a type-safe countdown will execute at 5 cycles per iteration on Intel Core 2: #include assert.h #include stdint.h #include stdlib.h #define LIKELY(x) __builtin_expect(!!(x), 1) #define UNLIKELY(x) __builtin_expect(!!(x), 0) register uint32_t *Iptr __asm__(rbp); typedef void (*inst_t)(uint64_t types, uint64_t a, uint64_t b); #define FUNC(x) ((inst_t) (uint64_t) x) #define INST(x) ((uint32_t) (uint64_t) x) __attribute__ ((noinline)) void dec_helper(uint64_t types, uint64_t a, uint64_t b) { assert(FIXME==); } void dec(uint64_t types, uint64_t a, uint64_t b) { if (LIKELY((types 0xFF) == 1)) { uint32_t next = Iptr[1]; --a; ++Iptr; FUNC(next)(types, a, b); } else dec_helper(types, a, b); } __attribute__ ((noinline)) void if_not_equal_jump_back_1_helper(uint64_t types, uint64_t a, uint64_t b) { assert(FIXME==); } void if_not_equal_jump_back_1(uint64_t types, uint64_t a, uint64_t b) { if (LIKELY((types 0x) == 0x0101)) { if (LIKELY(a != b)) { uint32_t next = Iptr[-1]; --Iptr; FUNC(next)(types, a, b); } else { uint32_t next = Iptr[1]; ++Iptr; FUNC(next)(types, a, b); } } else if_not_equal_jump_back_1_helper(types, a, b); } void unconditional_exit(uint64_t types, uint64_t a, uint64_t b) { exit(0); } __attribute__ ((noinline, noclone)) void execute(uint32_t *code, uint64_t types, uint64_t a, uint64_t b) { Iptr = code; FUNC(code[0])(types, a, b); } int main() { uint32_t code[]={INST(dec), INST(if_not_equal_jump_back_1), INST(unconditional_exit)}; execute(code + 1, 0x0101, 30, 0); return 0; } $ gcc-4.5 -O3 -std=gnu99 plain-32bit-direct-dispatch-countdown.c time ./a.out real0m5.007s user0m4.996s sys 0m0.004s CPU is 3GHz. Code execution starts at the second instruction (if_not_equal_jump_back_1). a==30 of type==1 is not equal to b==0 of type==1 (the two type comparisons are performed in parallel in one cycle without masking since one can compare the low 8-, 16- or 32-bits of a 64-bit register without masking and the two types are packed into the low 16-bits of the types register). As a!=b the code jumps back to the dec instruction, which performs another type check that a is of type==1 before decrementing a and jumping to if_not_equal_jump_back_1. This continues until a==0 and program exit occurs. While the generated assembly of GCC snapshot speaks for itself, here's some empirical evidence of its inferiority: $ gcc-snapshot.sh -O3 -std=gnu99 plain-32bit-direct-dispatch-countdown.c time ./a.out real0m10.014s user0m10.009s sys 0m0.000s GCC snapshot has doubled the execution time of this virtual machine example (compared to gcc-4.3, gcc-4.4 and gcc-4.5). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44281
[Bug rtl-optimization/41087] [4.5/4.6 Regression]: cris-elf gfortran.dg/zero_sized_3.f90 -O3 -funroll-loops execution
--- Comment #12 from hp at gcc dot gnu dot org 2010-09-13 00:49 --- Subject: Bug 41087 Author: hp Date: Mon Sep 13 00:49:27 2010 New Revision: 164240 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164240 Log: PR rtl-optimization/41087 * ifcvt.c (noce_get_condition): Don't allow conditions with side-effects. Modified: trunk/gcc/ChangeLog trunk/gcc/ifcvt.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41087
[Bug rtl-optimization/41087] [4.5/4.6 Regression]: cris-elf gfortran.dg/zero_sized_3.f90 -O3 -funroll-loops execution
--- Comment #13 from hp at gcc dot gnu dot org 2010-09-13 00:53 --- Subject: Bug 41087 Author: hp Date: Mon Sep 13 00:52:48 2010 New Revision: 164241 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164241 Log: PR rtl-optimization/41087 * ifcvt.c (noce_get_condition): Don't allow conditions with side-effects. Modified: branches/gcc-4_5-branch/gcc/ChangeLog branches/gcc-4_5-branch/gcc/ifcvt.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41087
[Bug rtl-optimization/41087] [4.5/4.6 Regression]: cris-elf gfortran.dg/zero_sized_3.f90 -O3 -funroll-loops execution
--- Comment #14 from hp at gcc dot gnu dot org 2010-09-13 01:07 --- committed http://gcc.gnu.org/ml/gcc-patches/2010-09/msg00932.html -- hp at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41087
[Bug debug/45408] -fcompare-debug failure with -O2 -ftree-vectorize -fno-var-tracking-assignments
--- Comment #6 from aoliva at gcc dot gnu dot org 2010-09-13 03:42 --- Subject: Bug 45408 Author: aoliva Date: Mon Sep 13 03:42:07 2010 New Revision: 164242 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164242 Log: PR debug/45604 PR debug/45419 PR debug/45408 * tree-pretty-print.c (dump_generic_node): Disregard top-level types of MEM_REF pointer types to the same type. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-pretty-print.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45408
[Bug testsuite/45604] [4.6 regression] New test failures
--- Comment #2 from aoliva at gcc dot gnu dot org 2010-09-13 03:42 --- Subject: Bug 45604 Author: aoliva Date: Mon Sep 13 03:42:07 2010 New Revision: 164242 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164242 Log: PR debug/45604 PR debug/45419 PR debug/45408 * tree-pretty-print.c (dump_generic_node): Disregard top-level types of MEM_REF pointer types to the same type. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-pretty-print.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45604
[Bug debug/45419] -fcompare-debug failure at -O3
--- Comment #19 from aoliva at gcc dot gnu dot org 2010-09-13 03:42 --- Subject: Bug 45419 Author: aoliva Date: Mon Sep 13 03:42:07 2010 New Revision: 164242 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164242 Log: PR debug/45604 PR debug/45419 PR debug/45408 * tree-pretty-print.c (dump_generic_node): Disregard top-level types of MEM_REF pointer types to the same type. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-pretty-print.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45419
[Bug testsuite/45604] [4.6 regression] New test failures
--- Comment #3 from aoliva at gcc dot gnu dot org 2010-09-13 04:58 --- Fixed -- aoliva at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45604
[Bug target/43088] [avr] Suspect optimizer missed code in gcc 4.4.3..
--- Comment #1 from abnikant dot singh at atmel dot com 2010-09-13 05:58 --- This bug is confirmed. andhi3/andsi3 causing this problem. conditional checks in andhi3 and andsi3 need to compare with zero instead of 0xff [etc]. i.e. in andhi3 we need to replace (mask 0x00ff) != 0xff by (mask 0x00ff) != 0. Similarly other checks in andhi3 and andsi3 need to be replaced. -- abnikant dot singh at atmel dot com changed: What|Removed |Added CC||abnikant dot singh at atmel ||dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43088