[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 --- Comment #10 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 06:53:30 UTC --- Created attachment 27783 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27783 patch from Richard Sandiford Updated patch, from http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00463.html (which wasn't in patch form).
[Bug debug/53135] internal compiler error: in value_format, at dwarf2out.c:8010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53135 Evgeniy Dushistov dushistov at mail dot ru changed: What|Removed |Added CC||dushistov at mail dot ru --- Comment #2 from Evgeniy Dushistov dushistov at mail dot ru 2012-07-13 07:29:22 UTC --- I think that it should be marked as regression. Because of qt 4.6.3 give such error message with gcc 4.7.1, but with gcc 4.2 all works fine. Can anybody with suitable permissions mark this bug as regression?
[Bug debug/53135] [4.7/4.8 Regression] internal compiler error: in value_format, at dwarf2out.c:8010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53135 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Known to work||4.2.4 Target Milestone|--- |4.7.2 Summary|internal compiler error: in |[4.7/4.8 Regression] |value_format, at|internal compiler error: in |dwarf2out.c:8010|value_format, at ||dwarf2out.c:8010
[Bug other/51678] 'make pdf' is broken in libiberty
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51678 --- Comment #4 from Andreas Schwab sch...@linux-m68k.org 2012-07-13 07:51:14 UTC --- http://permalink.gmane.org/gmane.comp.gcc.patches/266134
[Bug c++/53531] ,,,, accepted as template arguments for variadic template
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53531 --- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org 2012-07-13 07:53:21 UTC --- Author: redi Date: Fri Jul 13 07:53:12 2012 New Revision: 189452 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189452 Log: PR c++/53531 * testsuite/g++.dg/cpp0x/variadic135.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/variadic135.C Modified: trunk/gcc/testsuite/ChangeLog
[Bug c++/53531] ,,,, accepted as template arguments for variadic template
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53531 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.8.0 Known to fail||4.6.3, 4.7.1 --- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2012-07-13 07:54:37 UTC --- Fixed on trunk
[Bug rtl-optimization/53176] [4.8 Regression] gcc.dg/lower-subreg-1.c FAILs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53176 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED URL|http://gcc.gnu.org/ml/gcc-p |http://gcc.gnu.org/ml/gcc-p |atches/2012-05/msg00609.htm |atches/2012-07/msg00280.htm |l |l Resolution||FIXED --- Comment #26 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 08:04:39 UTC --- fixed in default costs too now.
[Bug regression/53203] [4.8 Regression]: gcc.dg/setjmp-1.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53203 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |SUSPENDED Last reconfirmed||2012-07-13 Depends on||53176 Ever Confirmed|0 |1 --- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 08:13:14 UTC --- This seems connected to PR53176 but the reasons aren't obvious. Now that PR53176 is fixed, this went (back) into hiding; the test now passes. I think there's a deeper issue so I'm just suspending this PR, not resolving as fixed.
[Bug go/53879] [4.6] new glibc: sysinfo.go:5976:68: error: expected ‘{’
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53879 Jan Kratochvil jan.kratochvil at redhat dot com changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED Version|4.8.0 |4.6.4 Resolution|FIXED | Summary|new glibc: |[4.6] new glibc: |sysinfo.go:5976:68: error: |sysinfo.go:5976:68: error: |expected ‘{’|expected ‘{’ --- Comment #2 from Jan Kratochvil jan.kratochvil at redhat dot com 2012-07-13 08:20:43 UTC --- It still seems to affect the 4.6 branch: sysinfo.go:3681:63: error: expected '{' sysinfo.go:3681:63: error: expected ';' or '}' or newline sysinfo.go:3681:80: error: expected field name
[Bug tree-optimization/53947] New: [meta-bug] vectorizer missed-optimizations
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947 Bug #: 53947 Summary: [meta-bug] vectorizer missed-optimizations Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: meta-bug, missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org
[Bug tree-optimization/53947] [meta-bug] vectorizer missed-optimizations
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-07-13 Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:29:36 UTC --- Confirmed.
[Bug middle-end/49969] not vectorized: data ref analysis failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49969 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:34:49 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/22184] tree vectorizer depends on context
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22184 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:36:08 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug middle-end/41115] Tree-vectorizer: VecCost tuning for X2: Without vectorization 30% faster
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41115 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:37:32 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/43425] gcc should vectorize this loop by substitution
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43425 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:38:21 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/34378] [autovectorize]: missed optimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34378 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:39:02 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/51492] vectorizer does not support saturated arithmetic patterns
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51492 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:39:43 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/18439] vectorizer failed for vector normalization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18439 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:40:23 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/43434] Missed vectorization: not vectorized: data ref analysis: pointer incremented by a parameter
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43434 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:41:40 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug target/48510] Does not vectorize loops involving casts from floating point to unsigned integer types
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48510 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:42:23 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/18438] vectorizer failed for vector matrix multiplication
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18438 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:43:04 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug middle-end/37150] vectorizer misses some loops
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37150 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #12 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:43:54 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/37021] Fortran Complex reduction / multiplication not vectorized
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37021 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #13 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:45:12 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/46012] 256bit vectorizer failed on int-double
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46012 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:47:11 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/52252] An opportunity for x86 gcc vectorizer (gain up to 3 times)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52252 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:48:18 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/33711] Missed optimization: reduction by subtraction (vectorizer)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33711 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:49:08 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/18437] vectorizer failed for matrix multiplication
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18437 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:49:47 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug debug/53948] New: [4.8 Regression] Assignment line missing for -O0 -g
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53948 Bug #: 53948 Summary: [4.8 Regression] Assignment line missing for -O0 -g Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: jan.kratoch...@redhat.com CC: aol...@gcc.gnu.org Target: x86_64-unknown-linux-gnu Nothing serious but it broke gdb.base/store.exp and I believe -O0 -g should not optimize out source statements. int f (register int a, register int b) { register int x = b, y = a; return x + y; } gcc -g PASS: gcc (GCC) 4.7.2 20120713 (prerelease) 7:89 f8mov%edi,%eax 9:89 f2mov%esi,%edx register int x = b, y = a; b:41 89 d4 mov%edx,%r12d e:89 c3mov%eax,%ebx return x + y; } 10:41 8d 04 1c lea(%r12,%rbx,1),%eax FAIL: gcc (GCC) 4.8.0 20120713 (experimental) 7:89 fbmov%edi,%ebx 9:41 89 f4 mov%esi,%r12d register int x = b, y = a; return x + y; } c:41 8d 04 1c lea(%r12,%rbx,1),%eax GDB no longer stops on the 'register int x = b, y = a;' line during 'step'. .debug_info is correct in both cases. I can update the GDB testsuite but still I believe 'int var = val;' source line should have its instruction during -O0 -g, even if it is just a 'nop'.
[Bug tree-optimization/39300] vectorizer confused by predictive commoning and PRE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39300 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:50:39 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/52056] Vectorizer cost model is imprecise
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52056 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:52:06 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 --- Comment #11 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 08:53:28 UTC --- Author: hp Date: Fri Jul 13 08:53:24 2012 New Revision: 189454 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189454 Log: PR rtl-optimization/53908 * df-problems.c (can_move_insns_across): When doing memory-reference book-keeping, handle call insns. Modified: trunk/gcc/ChangeLog trunk/gcc/df-problems.c
[Bug tree-optimization/18557] Inefficient code generated by -ftree-vectorize on Alpha
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18557 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #12 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:53:21 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/21998] (cond ? result1 : result2) is vectorized, where equivalent if-syntax isn't (store)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21998 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:54:14 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug middle-end/29533] Ada fails to vectorize even trivial loops
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29533 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:55:23 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/38011] vectorizer ignores alignment, useless versioning
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38011 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:56:00 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/43428] vectorizer should invoke loop distribution to partially vectorize this loop
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43428 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:56:37 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/26128] Trivial operation not vectorized on char/short
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26128 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:57:17 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug tree-optimization/32375] not vectorized: can't determine dependence (array sections)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32375 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:58:32 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 --- Comment #12 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 08:58:52 UTC --- Author: hp Date: Fri Jul 13 08:58:46 2012 New Revision: 189455 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189455 Log: PR rtl-optimization/53908 * gcc.dg/torture/pr53908.c: New test. Added: trunk/gcc/testsuite/gcc.dg/torture/pr53908.c Modified: trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/51848] GCC is not able to vectorize when a constant value is also added to the sum of array expression inside a loop.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51848 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Blocks||53947 --- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 08:59:26 UTC --- Link to vectorizer missed-optimization meta-bug.
[Bug target/53949] New: [SH] Add support for mac.w / mac.l instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53949 Bug #: 53949 Summary: [SH] Add support for mac.w / mac.l instructions Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: olege...@gcc.gnu.org CC: ch...@gcc.gnu.org Target: sh*-*-* So far, GCC does not utilize the integer multiply-add instructions. On SH1 only the mac.w instruction is supported. On SH2 and above the mac.w and mac.l instructions are available. Carry over from PR 39423 comment #20 On a related thread, for further work, I'm thinking on adding support for the MAC instruction, now that was have the multiply and add. But this requires exposing the MACLH registers to reload. Had anyone had a thought on this ? I'd like to give this a try pretty soon.
[Bug libstdc++/53657] [4.7/4.8 Regression] [C++11] pair(pair) move constructor is non-trivial
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53657 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #17 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 2012-07-13 09:00:05 UTC --- Author: paolo Date: Fri Jul 13 08:59:58 2012 New Revision: 189456 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189456 Log: 2012-07-13 Paolo Carlini paolo.carl...@oracle.com PR libstdc++/53657 * include/bits/stl_pair.h (pair::pair(pair)): Declare defaulted, per C++11. * include/bits/stl_map.h (map::insert(_Pair), map::insert (const_iterator, _Pair)): Constrain with std::is_constructible, per LWG2005. * include/bits/stl_multimap.h (multimap::insert(_Pair), multimap::insert(const_iterator, _Pair)): Likewise. * include/bits/hashtable_policy.h (_Insert::insert(_Pair), _Insert::insert(const_iterator, _Pair)): Likewise. * include/debug/unordered_map: Adjust. * include/debug/map.h: Likewise. * include/debug/multimap.h: Likewise. * include/profile/unordered_map: Likewise. * include/profile/map.h: Likewise. * include/profile/multimap.h: Likewise. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/hashtable_policy.h trunk/libstdc++-v3/include/bits/stl_map.h trunk/libstdc++-v3/include/bits/stl_multimap.h trunk/libstdc++-v3/include/bits/stl_pair.h trunk/libstdc++-v3/include/debug/map.h trunk/libstdc++-v3/include/debug/multimap.h trunk/libstdc++-v3/include/debug/unordered_map trunk/libstdc++-v3/include/profile/map.h trunk/libstdc++-v3/include/profile/multimap.h trunk/libstdc++-v3/include/profile/unordered_map --- Comment #18 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 2012-07-13 09:00:24 UTC --- Author: paolo Date: Fri Jul 13 09:00:18 2012 New Revision: 189457 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189457 Log: 2012-07-13 Paolo Carlini paolo.carl...@oracle.com PR libstdc++/53657 * include/bits/stl_pair.h (pair::pair(pair)): Declare defaulted, per C++11. * include/bits/stl_map.h (map::insert(_Pair), map::insert (const_iterator, _Pair)): Constrain with std::is_constructible, per LWG2005. * include/bits/stl_multimap.h (multimap::insert(_Pair), multimap::insert(const_iterator, _Pair)): Likewise. * include/bits/hashtable.h (_Hashtable::insert(_Pair), _Hashtable::insert(const_iterator, _Pair)): Likewise. * include/debug/unordered_map: Adjust. * include/debug/map.h: Likewise. * include/debug/multimap.h: Likewise. * include/profile/unordered_map: Likewise. * include/profile/map.h: Likewise. * include/profile/multimap.h: Likewise. Modified: branches/gcc-4_7-branch/libstdc++-v3/ChangeLog branches/gcc-4_7-branch/libstdc++-v3/include/bits/hashtable.h branches/gcc-4_7-branch/libstdc++-v3/include/bits/stl_map.h branches/gcc-4_7-branch/libstdc++-v3/include/bits/stl_multimap.h branches/gcc-4_7-branch/libstdc++-v3/include/bits/stl_pair.h branches/gcc-4_7-branch/libstdc++-v3/include/debug/map.h branches/gcc-4_7-branch/libstdc++-v3/include/debug/multimap.h branches/gcc-4_7-branch/libstdc++-v3/include/debug/unordered_map branches/gcc-4_7-branch/libstdc++-v3/include/profile/map.h branches/gcc-4_7-branch/libstdc++-v3/include/profile/multimap.h branches/gcc-4_7-branch/libstdc++-v3/include/profile/unordered_map --- Comment #19 from Paolo Carlini paolo.carlini at oracle dot com 2012-07-13 09:04:33 UTC --- Fixed mainline and 4.7.2.
[Bug debug/53948] [4.8 Regression] Assignment line missing for -O0 -g
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53948 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug middle-end/29533] Ada fails to vectorize even trivial loops
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29533 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||steven at gcc dot gnu.org Version|4.2.0 |4.6.0 Resolution||FIXED --- Comment #3 from Steven Bosscher steven at gcc dot gnu.org 2012-07-13 09:17:05 UTC --- $ cat compare_lang.ads package compare_lang is type the_range is range 0 .. 100; type My_Array is array (the_range) of Float; a, b, c : my_array; procedure do_compare; end compare_lang; $ cat compare_lang.adb package body compare_lang is procedure do_compare is begin for JJJ in the_range loop a(jjj) := b(jjj) * c(jjj); end loop; end do_compare; end compare_lang; $ ./xgcc -B. -S -m32 -O3 -gnatp -march=pentium4 -mfpmath=sse -msse3 \ -ftree-vectorize -ftree-vectorizer-verbose=5 compare_lang.adb Analyzing loop at compare_lang.adb:5 5: vect_model_load_cost: aligned. 5: vect_get_data_access_cost: inside_cost = 1, outside_cost = 0. 5: vect_model_load_cost: aligned. 5: vect_get_data_access_cost: inside_cost = 2, outside_cost = 0. 5: vect_model_store_cost: aligned. 5: vect_get_data_access_cost: inside_cost = 3, outside_cost = 0. 5: vect_model_load_cost: aligned. 5: vect_model_load_cost: inside_cost = 1, outside_cost = 0 . 5: vect_model_load_cost: aligned. 5: vect_model_load_cost: inside_cost = 1, outside_cost = 0 . 5: vect_model_simple_cost: inside_cost = 1, outside_cost = 0 . 5: vect_model_store_cost: aligned. 5: vect_model_store_cost: inside_cost = 1, outside_cost = 0 . 5: Cost model analysis: Vector inside of loop cost: 4 Vector outside of loop cost: 4 Scalar iteration cost: 4 Scalar outside cost: 0 prologue iterations: 0 epilogue iterations: 1 Calculated minimum iters for profitability: 2 5: Profitability threshold = 3 Vectorizing loop at compare_lang.adb:5 5: LOOP VECTORIZED. compare_lang.adb:3: note: vectorized 1 loops in function. $ cat compare_lang.s .filecompare_lang.adb .text .globlcompare_lang__Tmy_arrayBIP .typecompare_lang__Tmy_arrayBIP, @function compare_lang__Tmy_arrayBIP: .LFB2: ret .LFE2: .sizecompare_lang__Tmy_arrayBIP, .-compare_lang__Tmy_arrayBIP .globlcompare_lang__do_compare .typecompare_lang__do_compare, @function compare_lang__do_compare: .LFB3: xorl%eax, %eax pxor%xmm3, %xmm3 .L4: movaps%xmm3, %xmm0 movlpscompare_lang__b(,%eax,4), %xmm0 movhpscompare_lang__b+8(,%eax,4), %xmm0 movaps%xmm3, %xmm1 movlpscompare_lang__c(,%eax,4), %xmm1 movhpscompare_lang__c+8(,%eax,4), %xmm1 movsscompare_lang__c(%eax), %xmm2 mulps%xmm1, %xmm0 mulsscompare_lang__b(%eax), %xmm2 movlps%xmm0, compare_lang__a(,%eax,4) movhps%xmm0, compare_lang__a+8(,%eax,4) addl$4, %eax cmpl$100, %eax jne.L4 movsscompare_lang__b+400, %xmm0 mulsscompare_lang__c+400, %xmm0 movss%xmm0, compare_lang__a+400 ret .LFE3: .sizecompare_lang__do_compare, .-compare_lang__do_compare .globlcompare_lang__c .bss .align 32 .typecompare_lang__c, @object .sizecompare_lang__c, 404 compare_lang__c: .zero404 .globlcompare_lang__b .align 32 .typecompare_lang__b, @object .sizecompare_lang__b, 404 compare_lang__b: .zero404 .globlcompare_lang__a .align 32 .typecompare_lang__a, @object .sizecompare_lang__a, 404 compare_lang__a: .zero404 .globlcompare_lang_E .data .align 2 .typecompare_lang_E, @object .sizecompare_lang_E, 2 compare_lang_E: .zero2 .section.eh_frame,a,@progbits .Lframe1: .long.LECIE1-.LSCIE1 .LSCIE1: .long0 .byte0x3 .string .uleb128 0x1 .sleb128 -4 .uleb128 0x8 .byte0xc .uleb128 0x4 .uleb128 0x4 .byte0x88 .uleb128 0x1 .align 4 .LECIE1: .LSFDE1: .long.LEFDE1-.LASFDE1 .LASFDE1: .long.LASFDE1-.Lframe1 .long.LFB2 .long.LFE2-.LFB2 .align 4 .LEFDE1: .LSFDE3: .long.LEFDE3-.LASFDE3 .LASFDE3: .long.LASFDE3-.Lframe1 .long.LFB3 .long.LFE3-.LFB3 .align 4 .LEFDE3: .identGCC: (GNU) 4.8.0 20120711 (experimental) [trunk revision 189427] .section.note.GNU-stack,,@progbits Likewise on power7 with GCC: (GNU) 4.6.3 20120306 (Red Hat 4.6.3-2): .file compare_lang.adb .section.toc,aw .section.text .align 2 .p2align 4,,15 .globl compare_lang__Tmy_arrayBIP .section.opd,aw .align 3 compare_lang__Tmy_arrayBIP: .quad
[Bug target/39423] [4.6/4.7/4.8 Regression] [SH] performance regression: lost mov @(disp,Rn)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39423 --- Comment #21 from Oleg Endo olegendo at gcc dot gnu.org 2012-07-13 09:36:36 UTC --- (In reply to comment #20) I like your mem,plus,plus combine that look better than my folding. just there are 2 little details that I tried while playing with it: there was a lost of generality with the hardcoding of the shift constant, Yeah, sure. The hardcoded '4' was just to see if/how it could work at all. and I'm not sure if there was a risk of clobbering a live operands[1]. For those reasons I modified it a bit as followed. (define_insn_and_split *movsi_disp [(set (match_operand:SI 0 arith_reg_dest =r) (mem:SI (plus:SI (plus:SI (mult:SI (match_operand:SI 1 arith_reg_operand r) (match_operand:SI 2 const_int_operand i)) (match_operand:SI 3 arith_reg_operand K06)) (match_operand:SI 4 const_int_operand i] TARGET_SH1 satisfies_constraint_K06 (operands[4]) exact_log2 (INTVAL (operands[2])) 0 { gcc_unreachable (); return #; } 1 [(set (match_dup 1) (ashift:SI (match_dup 1) (match_dup 2))) (set (match_dup 1) (plus:SI (match_dup 1) (match_dup 3))) (set (match_dup 0) (mem:SI (plus:SI (match_dup 1) (match_dup 4] { int n = exact_log2 (INTVAL (operands[2])); rtx res = gen_reg_rtx (SImode); emit_move_insn (res, operands[1]); operands[1] = res; operands[2] = GEN_INT (n); } ) Uhm, I think it would be enough to do the following in the split preparation... (define_insn_and_split *movsi_disp [(set (match_operand:SI 0 arith_reg_dest =r) (mem:SI (plus:SI (plus:SI (mult:SI (match_operand:SI 1 arith_reg_operand r) (match_operand:SI 2 const_int_operand i)) (match_operand:SI 3 arith_reg_operand K06)) (match_operand:SI 4 const_int_operand i] TARGET_SH1 satisfies_constraint_K06 (operands[4]) exact_log2 (INTVAL (operands[2])) 0 { gcc_unreachable (); return #; } can_create_pseudo_p () [(set (match_dup 5) (ashift:SI (match_dup 1) (match_dup 2))) (set (match_dup 6) (plus:SI (match_dup 5) (match_dup 3))) (set (match_dup 0) (mem:SI (plus:SI (match_dup 6) (match_dup 4] { operands[5] = gen_reg_rtx (SImode); operands[6] = gen_reg_rtx (SImode); operands[2] = GEN_INT (exact_log2 (INTVAL (operands[2]))); }) (define_insn ashlsi3_k [(set (match_operand:SI 0 arith_reg_dest =r,r,r) (ashift:SI (match_operand:SI 1 arith_reg_operand 0,0,0) (match_operand:SI 2 const_int_operand M,P27,r)))] TARGET_SH1 @ add%0,%0 shll%O2%0 shld%2,%0 [(set_attr type arith)]) The shld insn is only available on SH3 and above or SH2A. Allowing arbitrary shifts definitely makes sense here, but then maybe we should use the existing shift-expansion, although it sometimes causes problems (like it ends up generating functions calls for shll8 on SH2..). Another option might be to do these combine patterns on SH3 only when the resulting shift costs do not pass a certain threshold. Using those changes, a snipet like int foo4 (long long tab[], int index) { return (int)tab [index+4]; } not compiles as: mov #3,r1 shldr1,r5 add r4,r5 rts mov.l @(32,r5),r0 If I recall correctly, a sequence such as mov #3,r1; shld r1,r5 will be slower than shll r5; shll2 r5 due to pipelining issues. But that's another story. 2)plus_mulsi I see some interactions with the movsi_disp pattern, due to different ordering on the matching in the combiner. I'll need to play more this them activated together. So I think you can go ahead with your combiner movsi_disp pattern and propose to Kaz when ready to close this defect. Feel free to take or not my suggestions. I'll then go with my plus_mulsi combiner in a second time, making clear that it's provide additional optimization opportunities without mixing the impacts. OK, I'll brush up the 'movsi_disp' stuff a little, taking our input into account. It might take a couple of days though. On a related thread, for further work, I'm thinking on adding support for the MAC instruction, now that was have the multiply and add. But this requires exposing the MACLH registers to reload. Had anyone had a thought on this ? I'd like to give this a try pretty soon. I have created PR 53949 for this.
[Bug c/53937] Pack'ing struct causes gcc to not recognize that an field's address is aligned
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53937 --- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 09:45:06 UTC --- Author: rguenth Date: Fri Jul 13 09:45:00 2012 New Revision: 189458 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189458 Log: 2012-07-13 Richard Guenther rguent...@suse.de PR middle-end/53937 * builtins.c (get_pointer_alignment_1): Handle constant pointers. Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c
[Bug c/53937] Pack'ing struct causes gcc to not recognize that an field's address is aligned
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53937 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0 --- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 09:46:22 UTC --- Fixed for 4.8.
[Bug tree-optimization/53922] [4.6/4.7/4.8 Regression] VRP: semantic conflict between range_includes_zero_p and value_inside_range
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53922 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added CC|rguenth at gcc dot gnu.org | Known to work||4.0.4 Target Milestone|--- |4.6.4 Summary|VRP: semantic conflict |[4.6/4.7/4.8 Regression] |between |VRP: semantic conflict |range_includes_zero_p and |between |value_inside_range |range_includes_zero_p and ||value_inside_range Known to fail||4.1.2 --- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 09:56:04 UTC --- Testing the patch. Fails since we introduced VRP.
[Bug c/53937] Pack'ing struct causes gcc to not recognize that an field's address is aligned
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53937 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #10 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 10:09:12 UTC --- Fixed I said.
[Bug fortran/53950] New: 1.5 times slowdown from 4.4.0 to 4.7.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53950 Bug #: 53950 Summary: 1.5 times slowdown from 4.4.0 to 4.7.0 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: kapo...@yahoo.com Created attachment 27784 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27784 Demonstration of slowdown I'm using MinGW GCC 4.4.0 to work with C/C++/Fortran project. Some days ago I've downloaded web installer and switched to GCC 4.7.0. Unfortunately I noticed a dramatic performance regression. I attach a minimal program that demonstrates the slowdown to the ticket. Compiled with gfortran -o test_self.exe -O3 test_self.f90 I get on my Core i7: GCC 4.4.0: Time of operation was1.2012070 seconds GCC 4.7.0: Time of operation was1.85641098 seconds Yury Kapoyko, Russia
[Bug c/53924] unhelpful diagnostic in invalid declaration list
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53924 Manuel López-Ibáñez manu at gcc dot gnu.org changed: What|Removed |Added CC||manu at gcc dot gnu.org --- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-07-13 10:29:26 UTC --- Clang: /tmp/webcompile/_2902_0.c:2:13: error: redefinition of 'tree' as different kind of symbol tree klass, tree cdecl, class_array_type; ^ /tmp/webcompile/_2902_0.c:1:15: note: previous definition is here typedef void *tree; ^ /tmp/webcompile/_2902_0.c:2:17: error: expected ';' after top level declarator tree klass, tree cdecl, class_array_type; ^ ; 2 errors generated.
[Bug target/53949] [SH] Add support for mac.w / mac.l instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53949 --- Comment #1 from Oleg Endo olegendo at gcc dot gnu.org 2012-07-13 10:34:20 UTC --- (In reply to comment #0) So far, GCC does not utilize the integer multiply-add instructions. On SH1 only the mac.w instruction is supported. On SH2 and above the mac.w and mac.l instructions are available. Carry over from PR 39423 comment #20 On a related thread, for further work, I'm thinking on adding support for the MAC instruction, now that was have the multiply and add. But this requires exposing the MACLH registers to reload. Had anyone had a thought on this ? I'd like to give this a try pretty soon. I think the biggest problem is that the mac operands have to be in memory. For example: long long fun (int a, int long b, long long c) { return (long long)a * (long long)b + c; } would need to become something like ... mov.l r4,@-r15 movr15,r1 mov.l r5,@-r15 lds r6,mach lds r7,macl mac.l @r15+,@r1+ sts mach,r1 sts macl,r0 rts add #4,r15 not using the mac instruction seems a bit simpler in this case: dmuls.l r4,r5 sts mach,r1 clrt sts macl,r0 addc r6,r0 rts addc r7,r1 I think the mac instructions can be very useful when they can be used inside of loops, but for this the whole post-inc memory stuff has to integrate properly into the surrounding code. Chris, do you have any ideas/plans on how to handle the SR.S bit, for example to implement the ssmaddhisi4 pattern with mac.w?
[Bug fortran/53950] 1.5 times slowdown from 4.4.0 to 4.7.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53950 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Target||*-mingw Status|UNCONFIRMED |WAITING Last reconfirmed||2012-07-13 Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 10:47:58 UTC --- Are you building a 64bit or a 32bit executable? Are you sure this is not an effect of whoever provides random_number() or log()?
[Bug fortran/53950] 1.5 times slowdown from 4.4.0 to 4.7.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53950 --- Comment #2 from Yury Kapoyko kapojko at yahoo dot com 2012-07-13 10:52:27 UTC --- Both targets are 32 bit. Yes, after deeper profiling it seems a problem to be inside log/cos/random. For example, fragments from gprof: 4.4.0: cosf - self seconds 0.77 4.7.0: cosf - self seconds 0.94 and so on. Is there a way to fix it?
[Bug fortran/53950] 1.5 times slowdown from 4.4.0 to 4.7.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53950 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Target|*-mingw |i?86-mingw --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 11:00:46 UTC --- These functions are not part of GCC but eventually part of the mingw runtime, so I suggest to file a bug there.
[Bug target/53949] [SH] Add support for mac.w / mac.l instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53949 --- Comment #2 from chrbr at gcc dot gnu.org 2012-07-13 11:00:55 UTC --- I see the MAC only as a global optimization, since its interest is to spawns across several loop BBs as you said. Their is also problem on clear the accumulator. That should certainly be new extension in the gimple SSA loop optimizers, based on the presence on a multiply and and pattern. Not sure what is the best way to do this as this point.
[Bug tree-optimization/21998] (cond ? result1 : result2) is vectorized, where equivalent if-syntax isn't (store)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21998 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added CC||steven at gcc dot gnu.org --- Comment #4 from Steven Bosscher steven at gcc dot gnu.org 2012-07-13 11:04:13 UTC --- (In reply to comment #1) They are not equivalent to GCC, the first always stores, the second has a conditional store. Just to clarify, 7 years later: To GCC the two procedures are not equivalent. In the first procedure, a1[i] = (a1[i] == v1 ? v2 : a1[i]); expands as: if (a1[i] == v1) a1[i] = v2; else a1[i] = a1[i]; while the second procedure expands just as-is: if (a1[i] == v1) a1[i] = v2; In the first case, there will always be a store to a1[i], in the second example this is not the case. Introducing new stores is not allowed, to avoid introducing data races, see http://gcc.gnu.org/wiki/Atomic/GCCMM/DataRaces. I'm not sure how GCC should transform the second procedure to allow the loop to be vectorized.
[Bug tree-optimization/53922] [4.6/4.7/4.8 Regression] VRP: semantic conflict between range_includes_zero_p and value_inside_range
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53922 --- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 11:21:45 UTC --- Author: rguenth Date: Fri Jul 13 11:21:39 2012 New Revision: 189461 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189461 Log: 2012-07-13 Richard Guenther rguent...@suse.de PR tree-optimization/53922 * tree-vrp.c (value_inside_range): Change prototype to take min/max instead of value-range. (range_includes_zero_p): Likewise. Return the result from value_inside_range. (extract_range_from_binary_expr_1): Adjust to handle dont-know return value from range_includes_zero_p. (extract_range_from_unary_expr_1): Likewise. (compare_range_with_value): Likewise. (vrp_meet_1): Likewise. * gcc.dg/torture/pr53922.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/torture/pr53922.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vrp.c
[Bug target/53949] [SH] Add support for mac.w / mac.l instructions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53949 chrbr at gcc dot gnu.org changed: What|Removed |Added Severity|normal |enhancement
[Bug tree-optimization/21998] (cond ? result1 : result2) is vectorized, where equivalent if-syntax isn't (store)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21998 --- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 11:28:45 UTC --- We have two related flags here, -ftree-loop-if-convert-stores, and --param allow-store-data-races. We can adjust the former to honor the latter if specified and then eventually vectorize this, too.
[Bug tree-optimization/53922] [4.6/4.7 Regression] VRP: semantic conflict between range_includes_zero_p and value_inside_range
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53922 Richard Guenther 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] VRP: |VRP: semantic conflict |semantic conflict between |between |range_includes_zero_p and |range_includes_zero_p and |value_inside_range |value_inside_range | --- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 11:41:13 UTC --- Fixed for 4.8.0 sofar.
[Bug rtl-optimization/53916] [mips16] divide operation compiled result incorrect with GCC-4.6.3 '-O2' option
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53916 --- Comment #1 from anmin_deng at yahoo dot com.tw 2012-07-13 11:41:37 UTC --- I recently tried the very same configurations and codes and tests with GCC-4.7.1. It seems that the generated disassemble by GCC-4.7.1 is OK (I have not yet checked very closely to confirm). However, the generated results by GCC-4.7.1 with '-O2' and '-Os' are not very optimal compared to the results by GCC-4.6.3 with '-Os'. The generated code by GCC-4.6.3 with '-Os' runs 'divu' instruction once (per loop) and using HI and LO registers resulted from the same 'divu' as remainder and quotient. The generated code by GCC-4.7.1 runs 'divu' instruction twice, one 'divu' for HI (remainder) and the other 'divu' for LO (quotient).
[Bug fortran/53950] 1.5 times slowdown from 4.4.0 to 4.7.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53950 --- Comment #4 from Yury Kapoyko kapojko at yahoo dot com 2012-07-13 12:39:05 UTC --- I agree with you. This buf refers to mingw, I think, it could be closed. Unfortunately, real application slows down to 30 times! But it's very hard to extract bug from there because it is rather complicated and multi-threaded. Also I have no profilers for Windows except gprof which is useless here. Compiled on Fedora (GCC 4.6.3) application works fine. I assume that the problem is with libgfortran, because if I run old application (compiled with GCC 4.4.0), but with new gfortran.dll in PATH it works exactly as bad, as new one.
[Bug libstdc++/53657] [4.7/4.8 Regression] [C++11] pair(pair) move constructor is non-trivial
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53657 Benjamin Kosnik bkoz at gcc dot gnu.org changed: What|Removed |Added CC||bkoz at gcc dot gnu.org --- Comment #20 from Benjamin Kosnik bkoz at gcc dot gnu.org 2012-07-13 12:38:03 UTC --- Thanks Paolo and Jonathan and Jason, this looks ready to go from an ABI standpoint for 4.7.2. Paolo, do we need to add any of the testcases in this PR to track regressions here? Or at least make this less fragile as FE/lib changes going forward?
[Bug libstdc++/53657] [4.7/4.8 Regression] [C++11] pair(pair) move constructor is non-trivial
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53657 --- Comment #21 from Paolo Carlini paolo.carlini at oracle dot com 2012-07-13 12:43:31 UTC --- I think that if something regresses we immediately see regressions in the v3 testsuite (Comment 5 is distilled from it).
[Bug libstdc++/53657] [4.7/4.8 Regression] [C++11] pair(pair) move constructor is non-trivial
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53657 --- Comment #22 from rguenther at suse dot de rguenther at suse dot de 2012-07-13 12:53:51 UTC --- On Fri, 13 Jul 2012, paolo.carlini at oracle dot com wrote: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53657 --- Comment #21 from Paolo Carlini paolo.carlini at oracle dot com 2012-07-13 12:43:31 UTC --- I think that if something regresses we immediately see regressions in the v3 testsuite (Comment 5 is distilled from it). Can one of you please add a note to gcc-4.7/changes.html to reflect the ABI changes between 4.7.1 and 4.7.2? Thanks.
[Bug target/53907] gcc uses unaligned load when aligned load was requested
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53907 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 13:01:13 UTC --- Author: rguenth Date: Fri Jul 13 13:01:06 2012 New Revision: 189462 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189462 Log: 2012-07-13 Richard Guenther rguent...@suse.de PR tree-optimization/53907 * tree-ssa-forwprop.c (associate_pointerplus): New function. (ssa_forward_propagate_and_combine): Call it. * gcc.target/i386/pr53907.c: New testcase. Added: trunk/gcc/testsuite/gcc.target/i386/pr53907.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-forwprop.c
[Bug target/53907] gcc uses unaligned load when aligned load was requested
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53907 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.8.0 --- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 13:01:55 UTC --- Fixed for GCC 4.8.0.
[Bug fortran/53951] New: [OOP] Later TARGET statement ignored for CLASS
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53951 Bug #: 53951 Summary: [OOP] Later TARGET statement ignored for CLASS Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org CC: ja...@gcc.gnu.org Related, but slightly different: PR 51610 and PR 52227. The following program is rejected as the TARGET B comes too late: C = B ! Valid, but rejected 1 Error: Pointer assignment target is neither TARGET nor POINTER at (1) type t end type t class(t), pointer :: C TARGET :: A class(t), allocatable :: A, B TARGET :: B C = A ! Valid C = B ! Valid, but rejected end
[Bug fortran/52227] [OOP] TARGET attribute mishandled in polymorphic types
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52227 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added CC||janus at gcc dot gnu.org --- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-07-13 13:17:23 UTC --- I think we need so change class.c's gfc_build_class_symbol. It currently only handles pointer/allocatable plus a (co)rank. It seems to definitely lacks support for TARGET, judging by this PR, PR51610 and PR53951. At least I fear that some wrong-code bug is lurking there if TARGET is not properly set. As written in comment 0, there might be other attributes which have to be taken into account, e.g. VOLATILE or ASYNCHRONUOUS. Recall that when adding letters to the type name, either the number of allowed characters has to change or the length part in the hashing, otherwise, names might get cropped. We should try to fix this issue soonish, as it is a nasty wrong-code issue (depending on the optimization and timing) and it affects the ABI!
[Bug libmudflap/53952] New: [4.8 Regression] FAIL: libmudflap.c++/pass55-frag.cxx ( -O[123]) execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53952 Bug #: 53952 Summary: [4.8 Regression] FAIL: libmudflap.c++/pass55-frag.cxx ( -O[123]) execution test Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libmudflap AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org I see since quite some time FAIL: libmudflap.c++/pass55-frag.cxx ( -O) execution test FAIL: libmudflap.c++/pass55-frag.cxx (-O2) execution test FAIL: libmudflap.c++/pass55-frag.cxx (-O3) execution test with -O0 it does not fail. I suspect stricter variable lifetime handling but did not try to confirm.
[Bug libmudflap/53952] [4.8 Regression] FAIL: libmudflap.c++/pass55-frag.cxx ( -O[123]) execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53952 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug regression/53953] New: [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53953 Bug #: 53953 Summary: [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching) Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: regression AssignedTo: unassig...@gcc.gnu.org ReportedBy: h...@gcc.gnu.org CC: ja...@gcc.gnu.org, pa...@gcc.gnu.org Host: x86_64-unknown-linux-gnu Target: cris-axis-elf This test previously passed, now it fails, at least for cris-elf, but most likely on multiple targets...but from gcc-testresults, I see that's not so. Thankfully, for some test-runs, it can be seen for i686-pc-linux-gnu, so it might be in some part be specific to some ILP32 targets. (Odd detail: I see it in http://gcc.gnu.org/ml/gcc-testresults/2012-07/msg00915.html but not in http://gcc.gnu.org/ml/gcc-testresults/2012-07/msg00920.html and I can't spot a system-specific difference between those runs - they seem to be identical overlapping autotesters.) A patch in the revision range (last_known_working:first_known_failing) 189391:189401 exposed or caused this regression. Since then it fails as follows: Running /tmp/hpautotest-gcc1/gcc/gcc/testsuite/g++.dg/dg.exp ... ... FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C (test for warnings, line 12) FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C candidate explanation (test for errors, line 5) FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C (test for excess errors) In g++.log: Executing on host: /tmp/gccobj/gcc/testsuite/g++/../../g++ -B/tmp/gccobj/gcc/testsuite/g++/../../ /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C -fno-diagnostics-show-caret -nostdinc++ -I/tmp/gccobj/cris-elf/libstdc++-v3/include/cris-elf -I/tmp/gccobj/cris-elf/libstdc++-v3/include -I/tmp/gccsrc/libstdc++-v3/libsupc++ -I/tmp/gccsrc/libstdc++-v3/include/backward -I/tmp/gccsrc/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++0x -S -isystem /tmp/gccobj/cris-elf/./newlib/targ-include -isystem /tmp/gccsrc/newlib/libc/include -o lambda-ice2.s(timeout = 300) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In function 'int main()': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: error: no matching function for call to 'run(main()::lambda())' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: note: candidate is: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: templateclass F decltype (F()) run(F) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: template argument deduction/substitution failed: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In substitution of 'templateclass F decltype (F()) run(F) [with F = main()::lambda()]': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: required from here /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: error: no matching function for call to 'main()::lambda()::__lambda0()' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: candidates are: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: constexpr main()::lambda()::lambda(const main()::lambda()) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: candidate expects 1 argument, 0 provided /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: constexpr main()::lambda()::lambda(main()::lambda()) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: candidate expects 1 argument, 0 provided compiler exited with status 1 output is: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In function 'int main()': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: error: no matching function for call to 'run(main()::lambda())' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: note: candidate is: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: templateclass F decltype (F()) run(F) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: template argument deduction/substitution failed: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In substitution of 'templateclass F decltype (F()) run(F) [with F = main()::lambda()]': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: required from here /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: error: no matching function for call to 'main()::lambda()::__lambda0()' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: candidates are: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: constexpr main()::lambda()::lambda(const main()::lambda())
[Bug tree-optimization/18557] Inefficient code generated by -ftree-vectorize on Alpha
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18557 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||DUPLICATE --- Comment #13 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 13:52:25 UTC --- At -O3 we now get calls to memset for the original testcase, changing it to store 1 instead we get $f..ng: f: .frame $30,0,$26,0 .prologue 0 and $16,4,$1 cmpult $31,$1,$1 lda $7,64($31) addl $31,$1,$2 mov $31,$22 beq $2,$L2 lda $7,63($31) lda $22,1($31) lda $3,1($31) stl $3,0($16) $L2: lda $3,64($31) subl $3,$2,$2 zapnot $2,15,$8 lda $5,1($31) srl $8,1,$6 sll $5,32,$5 addl $6,$6,$2 s4addq $1,$16,$1 mov $31,$3 zapnot $6,15,$6 lda $5,1($5) .align 4 $L6: addl $3,1,$3 stq $5,0($1) zapnot $3,15,$4 lda $1,8($1) cmpult $4,$6,$4 bne $4,$L6 zapnot $2,15,$3 addl $22,$2,$1 cmpeq $8,$3,$8 cpys $f31,$f31,$f31 subl $7,$2,$2 bne $8,$L8 s4addq $1,0,$1 lda $4,1($31) .align 4 $L5: addq $16,$1,$3 subl $2,1,$2 stl $4,0($3) lda $1,4($1) bne $2,$L5 $L8: ret $31,($26),1 .end f which seems to be reasonable. We still run into the issue that we do not recognize that the epilogue loop may at most iterate once. The vectorizer makes a mess out of induction variables for the prologue/epilogue loops. See PR53355 for where I track this general issue. *** This bug has been marked as a duplicate of bug 53355 ***
[Bug tree-optimization/53355] Autovectorization of a simple loop could be improved.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53355 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added CC||falk at debian dot org --- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 13:52:25 UTC --- *** Bug 18557 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/22184] tree vectorizer depends on context
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22184 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 14:02:17 UTC --- This is fixed, even if I disable VRP / jump-threading and substitute the info from comment #3 in the code: double MyFunc2 (int size) { int len = size + 1; double Data[16] = {0}; if (len 3) ; else if (len 0) ; else return 0; for (int i=0; ilen; i++) Data[i] = Data[i]=0 ? Data[i] : -Data[i]; return Data[1]; }
[Bug tree-optimization/26128] Trivial operation not vectorized on char/short
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26128 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Known to work||4.5.4, 4.8.0 Resolution||FIXED Target Milestone|--- |4.5.0 Known to fail||4.4.6 --- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-07-13 14:05:50 UTC --- Making the testcase actually compile like char a[16] __attribute__((aligned(16))) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; char b[16] __attribute__((aligned(16))) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; char c[16] __attribute__((aligned(16))); int main() { int i; for(i = 0; i16; i++) { c[i] = a[i] + b[i]; } for(i = 0; i16; i++) { printf(%i , c[i]); } } shows: c /space/rguenther/install/gcc-4.5.4/bin/gcc -O3 t.c -ftree-vectorizer-verbose=1 t.c: In function 'main': t.c:18:7: warning: incompatible implicit declaration of built-in function 'printf' t.c:11: note: LOOP VECTORIZED. t.c:7: note: vectorized 1 loops in function. Thus fixed, in GCC 4.5.
[Bug c++/53954] New: [C++11] Undefined reference to non-odr-used static const member variable of variadic class template in DSO with -flto and -Wl,--export-dynamic
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53954 Bug #: 53954 Summary: [C++11] Undefined reference to non-odr-used static const member variable of variadic class template in DSO with -flto and -Wl,--export-dynamic Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ai.az...@gmail.com Created attachment 27785 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27785 Command-line log The following code shows the problem with GCC 4.7.2 20120707 on x86_64-unknown-linux-gnu. // // foo.cpp templatetypename... struct S { static const bool value = false; }; void f() { typedef decltype(S::value) B; } // Obviously, `S::value' is not odr-used. Therefore, the program should not require its definition. However, when a DSO is created from the above code with GCC 4.7.2 20120707, `-flto' and `-Wl,--export-dynamic' options, it requires the definition of `S::value'. For example, the following command lines result in a link error. $ g++ -std=c++11 -fPIC -flto -Wl,--export-dynamic -o libfoo.so -shared foo.cpp $ g++ -std=c++11 -fPIC main.cpp -L. -lfoo ./libfoo.so: undefined reference to `S::value' ./libfoo.so: undefined reference to `S::value' collect2: error: ld returned 1 exit status where main.cpp is a trivial C++ source file like int main(){}. Note that neither GCC 4.6.4 20120706 nor 4.8.0 20120708 reproduces the problem. Note also that the above reproducer originally comes from a likely C++ code using `std::vector' and `-std=c++11' option, like the following; / #include vector void f() { std::vectorint v; v.push_back(0); } / When a DSO is created from this code with `-std=c++11', `-lfto' and `-Wl,--export-dynamic' options, it requires the definition of `std::allocator_traitsstd::allocatorint ::__construct_helperint, int::value'.
[Bug target/53942] [4.6/4.7/4.8 Regression] unable to find a register to spill in class 'CREG'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53942 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Keywords||ra Target||x86_32 Status|UNCONFIRMED |NEW Last reconfirmed||2012-07-13 Summary|unable to find a register |[4.6/4.7/4.8 Regression] |to spill in class 'CREG'|unable to find a register ||to spill in class 'CREG' Ever Confirmed|0 |1 --- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2012-07-13 14:20:54 UTC --- Confirmed, a regression at least on 4.6, 4.7 and 4.8. Testcase compiles OK with 4.1. RA issue.
[Bug rtl-optimization/53942] [4.6/4.7/4.8 Regression] unable to find a register to spill in class 'CREG'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53942 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Keywords|ra | Component|target |rtl-optimization Target Milestone|--- |4.6.4 --- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2012-07-13 14:36:42 UTC --- Please note that static function declaration enables register parameter passing, so we have live AX, DX and CX at function entry. combine pass propagates hard register to (insn 17): (insn 17 16 18 2 (parallel [ (set (reg:QI 90 [ D.1417 ]) (and:QI (reg:QI 2 cx [ ISRA.5 ]) (subreg:QI (reg:SI 88 [ D.1419 ]) 0))) (clobber (reg:CC 17 flags)) ]) pr53942.c:22 382 {*andqi_1} (expr_list:REG_DEAD (reg:HI 2 cx [ ISRA.5 ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_DEAD (reg:SI 88 [ D.1419 ]) (nil) and this effectively blocks CX usage in between (insn 17) and function entry. RA actually can't undo this propagation and fails to allocate CX when this is the only alternative. Reconfirmed as RTL optimization issue. Combine should not propagate hard registers on its own.
[Bug rtl-optimization/46843] ICE: in spill_failure, at reload1.c:2157 -fschedule-insns -fsched-pressure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46843 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-07-13 Target Milestone|--- |4.6.4 Summary|ICE: in spill_failure, at |ICE: in spill_failure, at |reload1.c:2157 |reload1.c:2157 |-fschedule-insns|-fschedule-insns |-fsched-pressure when using |-fsched-pressure |doubles | Ever Confirmed|0 |1 Known to fail||4.7.2, 4.8.0 --- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2012-07-13 15:07:28 UTC --- Confirmed. sched1 pass is moving insn that reads CX hard register after the shift: (insn 20 7 10 2 (parallel [ (set (reg/v:SI 64 [ n ]) (ashift:SI (reg:SI 85) (reg:QI 37 r8 [ s ]))) (clobber (reg:CC 17 flags)) ]) pr46843.c:3 498 {*ashlsi3_1} (expr_list:REG_DEAD (reg:SI 85) (expr_list:REG_DEAD (reg:QI 37 r8 [ s ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil) (insn 10 20 13 2 (set (reg/v/f:DI 81 [ d2 ]) (reg:DI 2 cx [ d2 ])) pr46843.c:2 63 {*movdi_internal_rex64} (expr_list:REG_DEAD (reg:DI 2 cx [ d2 ]) (nil))) Probably not a good idea to increase live ranges of hard registers before register allocation pass. This PR is somehow related to PR 53942, where combine pass increased live range of CX register after shift insn.
[Bug regression/53953] [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53953 --- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2012-07-13 15:09:10 UTC --- Author: jason Date: Fri Jul 13 15:08:55 2012 New Revision: 189465 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189465 Log: PR c++/53953 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/method.c
[Bug regression/53953] [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53953 --- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2012-07-13 15:09:10 UTC --- Author: jason Date: Fri Jul 13 15:08:55 2012 New Revision: 189465 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189465 Log: PR c++/53953 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/method.c --- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2012-07-13 15:10:03 UTC --- Author: jason Date: Fri Jul 13 15:09:47 2012 New Revision: 189466 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189466 Log: PR c++/53953 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner. Modified: branches/gcc-4_7-branch/gcc/cp/ChangeLog branches/gcc-4_7-branch/gcc/cp/method.c
[Bug regression/53953] [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53953 --- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2012-07-13 15:10:03 UTC --- Author: jason Date: Fri Jul 13 15:09:47 2012 New Revision: 189466 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189466 Log: PR c++/53953 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner. Modified: branches/gcc-4_7-branch/gcc/cp/ChangeLog branches/gcc-4_7-branch/gcc/cp/method.c
[Bug fortran/52227] [OOP] TARGET attribute mishandled in polymorphic types
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52227 --- Comment #3 from paul.richard.thomas at gmail dot com paul.richard.thomas at gmail dot com 2012-07-13 15:10:52 UTC --- Hmmm! OK - I guess that we need class_pointer/class_target/class_allocatable attributes that are retained by the symbol, rather than the container. Cheers Paul PS I have to recover the steps between the last unlimited polymorphic patch that I sent you and the present on, which does the job for unlimited OOP but breaks something such that regressions run into the hundreds. I have stared at it for a couple of evenings but cannot see what generates the problem. If I do not see it by Sunday, I'll let you take a look. On 13 July 2012 15:17, burnus at gcc dot gnu.org gcc-bugzi...@gcc.gnu.org wrote: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52227 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added CC||janus at gcc dot gnu.org --- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-07-13 13:17:23 UTC --- I think we need so change class.c's gfc_build_class_symbol. It currently only handles pointer/allocatable plus a (co)rank. It seems to definitely lacks support for TARGET, judging by this PR, PR51610 and PR53951. At least I fear that some wrong-code bug is lurking there if TARGET is not properly set. As written in comment 0, there might be other attributes which have to be taken into account, e.g. VOLATILE or ASYNCHRONUOUS. Recall that when adding letters to the type name, either the number of allowed characters has to change or the length part in the hashing, otherwise, names might get cropped. We should try to fix this issue soonish, as it is a nasty wrong-code issue (depending on the optimization and timing) and it affects the ABI! -- Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug.
[Bug regression/53953] [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53953 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2012-07-13 Ever Confirmed|0 |1 --- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2012-07-13 15:11:07 UTC --- Should be fixed now.
[Bug rtl-optimization/53352] Incorrect CSE optimization on RTL expressions with a paradoxical subreg
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53352 Ramana Radhakrishnan ramana at gcc dot gnu.org changed: What|Removed |Added CC||ramana at gcc dot gnu.org --- Comment #11 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2012-07-13 16:24:34 UTC --- (In reply to comment #10) The test fails on Linux/x86 and Linux/x86-64. http://gcc.gnu.org/ml/gcc-testresults/2012-07/msg00958.html doesn't suggest this test fails anymore ? HJ, should this now be marked as FIXED ? ramana
[Bug rtl-optimization/53352] Incorrect CSE optimization on RTL expressions with a paradoxical subreg
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53352 meadori at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||meadori at gcc dot gnu.org Resolution||FIXED --- Comment #12 from meadori at gcc dot gnu.org 2012-07-13 16:34:14 UTC --- The test case was fixed: http://gcc.gnu.org/viewcvs?view=revisionrevision=187654.
[Bug bootstrap/53955] New: [4.8 Regression] Missing prototypes in i386.c, bootstrap failure with --disable-build-poststage1-with-cxx
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53955 Bug #: 53955 Summary: [4.8 Regression] Missing prototypes in i386.c, bootstrap failure with --disable-build-poststage1-with-cxx Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: build Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: tkoe...@gcc.gnu.org home/ig25/Gcc/trunk-bin/./prev-gcc/xgcc -B/home/ig25/Gcc/trunk-bin/./prev-gcc/ -B/home/ig25/x86_64-unknown-linux-gnu/bin/ -B/home/ig25/x86_64-unknown-linux-gnu/bin/ -B/home/ig25/x86_64-unknown-linux-gnu/lib/ -isystem /home/ig25/x86_64-unknown-linux-gnu/include -isystem /home/ig25/x86_64-unknown-linux-gnu/sys-include-c -g -O2 -gtoggle -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -Wold-style-definition -Wc++-compat -fno-common -DHAVE_CONFIG_H -I. -I. -I../../trunk/gcc -I../../trunk/gcc/. -I../../trunk/gcc/../include -I../../trunk/gcc/../libcpp/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I../../trunk/gcc/../libdecnumber -I../../trunk/gcc/../libdecnumber/bid -I../libdecnumber\ ../../trunk/gcc/config/i386/i386.c -o i386.o ../../trunk/gcc/config/i386/i386.c:40070:1: error: no previous prototype for 'ix86_init_cost' [-Werror=missing-prototypes] ix86_init_cost (struct loop *loop_info ATTRIBUTE_UNUSED) ^ ../../trunk/gcc/config/i386/i386.c:40080:1: error: no previous prototype for 'ix86_add_stmt_cost' [-Werror=missing-prototypes] ix86_add_stmt_cost (void *data, int count, enum vect_cost_for_stmt kind, ^ ../../trunk/gcc/config/i386/i386.c:40107:1: error: no previous prototype for 'ix86_finish_cost' [-Werror=missing-prototypes] ix86_finish_cost (void *data) ^ ../../trunk/gcc/config/i386/i386.c:40115:1: error: no previous prototype for 'ix86_destroy_cost_data' [-Werror=missing-prototypes] ix86_destroy_cost_data (void *data) ^ cc1: all warnings being treated as errors make[3]: *** [i386.o] Error 1 make[3]: Leaving directory `/home/ig25/Gcc/trunk-bin/gcc' make[2]: *** [all-stage2-gcc] Error 2 make[2]: Leaving directory `/home/ig25/Gcc/trunk-bin' make[1]: *** [stage2-bubble] Error 2 make[1]: Leaving directory `/home/ig25/Gcc/trunk-bin' make: *** [all] Error 2 Configure line was ../trunk/^Cnfigure --prefix=$HOME --enable-languages=c,fortran,c++ --disable-build-poststage1-with-cxx --with-mpfr=/usr/local --with-gmp=/usr/local --with-mpc=/usr/local
[Bug bootstrap/53955] [4.8 Regression] Missing prototypes in i386.c, bootstrap failure with --disable-build-poststage1-with-cxx
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53955 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.0
[Bug bootstrap/53955] [4.8 Regression] Missing prototypes in i386.c, bootstrap failure with --disable-build-poststage1-with-cxx
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53955 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-07-13 CC||wschmidt at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Steven Bosscher steven at gcc dot gnu.org 2012-07-13 17:04:48 UTC --- Caused by the new vectorizer cost model, http://gcc.gnu.org/viewcvs?view=revisionrevision=189460 Those functions should be static, I think.
[Bug tree-optimization/32089] Winline reports bogus warning
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32089 Edward-san edo88 at email dot it changed: What|Removed |Added CC||edo88 at email dot it --- Comment #9 from Edward-san edo88 at email dot it 2012-07-13 17:08:54 UTC --- Is this: http://gcc.gnu.org/ml/gcc-help/2012-07/msg00029.html related to this bug?
[Bug debug/37237] Debug information for virtual destructors omits DW_AT_vtable_elem_location
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37237 --- Comment #9 from Tom Tromey tromey at gcc dot gnu.org 2012-07-13 17:14:38 UTC --- Likewise there isn't a super way to find out which constructor is in-charge. The only way I could come up with is to look at the linkage name; but this requires excessive knowledge of the mangling scheme.
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 --- Comment #13 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 17:21:47 UTC --- Author: hp Date: Fri Jul 13 17:21:41 2012 New Revision: 189468 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189468 Log: PR rtl-optimization/53908 * df-problems.c (can_move_insns_across): When doing memory-reference book-keeping, handle call insns. Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/df-problems.c
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 --- Comment #14 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 17:23:02 UTC --- Author: hp Date: Fri Jul 13 17:22:55 2012 New Revision: 189469 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=189469 Log: PR rtl-optimization/53908 * gcc.dg/torture/pr53908.c: New test. Added: branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/torture/pr53908.c Modified: branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #15 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-07-13 17:27:11 UTC --- Testing for 4.7 went well, as expected from the previous versions, so committed. Closing, but feel free to post test-results for 4.6 and permission for back-port.
[Bug rtl-optimization/53908] [4.6 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Keywords||patch Priority|P3 |P1 Status|RESOLVED|REOPENED Resolution|FIXED | Summary|[4.6/4.7 Regression] csa|[4.6 Regression] csa |removes needed memory load |removes needed memory load --- Comment #16 from Steven Bosscher steven at gcc dot gnu.org 2012-07-13 17:39:21 UTC --- GCC 4.6 is still maintained, so this regression report should stay open. In fact, being wrong code on a primary target, and relatively trivial to fix, I'd say this has to be a P1 bug for GCC 4.6.
[Bug rtl-optimization/53908] [4.6 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|REOPENED|ASSIGNED CC||steven at gcc dot gnu.org AssignedTo|unassigned at gcc dot |steven at gcc dot gnu.org |gnu.org | --- Comment #17 from Steven Bosscher steven at gcc dot gnu.org 2012-07-13 17:41:12 UTC --- Will take care of GCC 4.6.
[Bug go/53879] [4.6] new glibc: sysinfo.go:5976:68: error: expected ‘{’
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53879 --- Comment #3 from Ian Lance Taylor ian at airs dot com 2012-07-13 17:47:18 UTC --- The version of Go on the 4.6 branch is quite out-dated. I don't mind if somebody tries to fix it up, but I don't plan to do so myself. I strongly recommend that anybody using gccgo use GCC 4.7.1 or later.
[Bug fortran/53956] New: Proc-pointer w/ interface: Bogus EXTERNAL attribute conflicts with FUNCTION attribute
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53956 Bug #: 53956 Summary: Proc-pointer w/ interface: Bogus EXTERNAL attribute conflicts with FUNCTION attribute Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org CC: ja...@gcc.gnu.org Found at comp.lang.fortran, cf. http://www.rhinocerus.net/forum/lang-fortran/709699-sort-2d-matrix-2.html or https://groups.google.com/forum/?fromgroups#!topic/comp.lang.fortran/kfOR7y1bI0Q The original example has been written by James Van Buskirk - see thread. The following program gives the bogus error when the procedure pointer is invoked. Without procedure pointer or - for the dummy argument - using procedure(integer) instead of integer, external (which is semantically identically), works. program testme 1 Error: EXTERNAL attribute conflicts with FUNCTION attribute in 'comparator2' at (1) module m contains function compare() integer :: compare compare = 42 end function compare subroutine print_it(x) procedure(integer) :: x print *, x() end subroutine print_it end module m program testme use m implicit none interface subroutine sub(comparator2)! related to those integer, external :: comparator2 ! lines end subroutine sub end interface procedure(sub), pointer :: fp ! but the interface might be involved fp = print_it call fp (compare) ! Triggers the error end program testme