[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 changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #15 from Hans-Peter Nilsson 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/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 --- Comment #14 from Hans-Peter Nilsson 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=gcc&view=rev&rev=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 --- Comment #13 from Hans-Peter Nilsson 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=gcc&view=rev&rev=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 #12 from Hans-Peter Nilsson 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=gcc&view=rev&rev=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 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 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=gcc&view=rev&rev=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 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 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 rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 H.J. Lu changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc-p ||atches/2012-07/msg00410.htm ||l --- Comment #9 from H.J. Lu 2012-07-11 12:38:16 UTC --- The fix is posted at http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00410.html
[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 #8 from Mikael Pettersson 2012-07-11 09:46:06 UTC --- Backporting r186159 and its followup fix r186164 to 4.7.1 was easy and fixed the test case there too (untested beyond this test case). Backporting those revisions to 4.6.3 required more elbow grease but didn't fix the test case there. I'm going to test the 4.7 backport properly now, in case a smaller more direct fix doesn't emerge soon.
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 H.J. Lu changed: What|Removed |Added CC||bernds at gcc dot gnu.org --- Comment #7 from H.J. Lu 2012-07-11 08:04:48 UTC --- It is caused by revision 167779: http://gcc.gnu.org/ml/gcc-cvs/2010-12/msg00461.html
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908 H.J. Lu changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-07-11 Ever Confirmed|0 |1 --- Comment #6 from H.J. Lu 2012-07-11 06:27:29 UTC --- It is fixed on trunk by revision 186159: http://gcc.gnu.org/ml/gcc-cvs/2012-04/msg00108.html
[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 #5 from Mikael Pettersson 2012-07-10 22:50:24 UTC --- On x86_64-linux the SEGV went away on trunk with r186159: http://gcc.gnu.org/ml/gcc-cvs/2012-04/msg00108.html http://gcc.gnu.org/ml/gcc-patches/2012-04/msg00202.html The patch description makes it sound more like a cleanup than fixing actual bugs, but when I diff the assembly code for the test case with r186158 and r186159 I see: --- pr53908.s-r186158 2012-07-11 00:28:57.0 +0200 +++ pr53908.s-r186159 2012-07-11 00:34:32.0 +0200 ... callis_basic testl %eax, %eax - movq8(%rsp), %rbp - js .L68 -.L29: + js .L29 +.L33: movqusers(%rip), %rbx + movq8(%rsp), %rbp testq %rbx, %rbx ... That is, a load is being moved across a control flow insn. All other diffs seem to just be changed label numbers. I'll give it some more testing tomorrow.