[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load

2012-07-13 Thread hp at gcc dot gnu.org
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 rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load

2012-07-13 Thread hp at gcc dot gnu.org
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 rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load

2012-07-13 Thread hp at gcc dot gnu.org
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 rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load

2012-07-13 Thread hp at gcc dot gnu.org
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

2012-07-13 Thread hp at gcc dot gnu.org
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

2012-07-13 Thread hp at gcc dot gnu.org
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/4.7 Regression] csa removes needed memory load

2012-07-11 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-07-11
 Ever Confirmed|0   |1

--- Comment #6 from H.J. Lu hjl.tools at gmail dot com 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

2012-07-11 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||bernds at gcc dot gnu.org

--- Comment #7 from H.J. Lu hjl.tools at gmail dot com 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

2012-07-11 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908

--- Comment #8 from Mikael Pettersson mikpe at it dot uu.se 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

2012-07-11 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2012-07/msg00410.htm
   ||l

--- Comment #9 from H.J. Lu hjl.tools at gmail dot com 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

2012-07-10 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53908

--- Comment #5 from Mikael Pettersson mikpe at it dot uu.se 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.