This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
- From: "mikpe at it dot uu.se" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 10 Jul 2012 22:50:24 +0000
- Subject: [Bug rtl-optimization/53908] [4.6/4.7 Regression] csa removes needed memory load
- Auto-submitted: auto-generated
- References: <bug-53908-4@http.gcc.gnu.org/bugzilla/>
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.000000000 +0200
+++ pr53908.s-r186159 2012-07-11 00:34:32.000000000 +0200
...
call is_basic
testl %eax, %eax
- movq 8(%rsp), %rbp
- js .L68
-.L29:
+ js .L29
+.L33:
movq users(%rip), %rbx
+ movq 8(%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.