[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-08 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #22 from sandra at gcc dot gnu.org --- My nios2-elf test results look good now with this patch. Thanks!

[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-08 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #21 from CVS Commits --- The master branch has been updated by Richard Biener : https://gcc.gnu.org/g:dd9ca9d770a18ce4b16d867f49fef3293b483ff5 commit r10-7635-gdd9ca9d770a18ce4b16d867f49fef3293b483ff5 Author: Richard Biener Date:

[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #20 from Richard Biener --- So for the CSE issue we go through the equivalence chain and find (gdb) p debug_rtx (p->exp) (mem/j:SI (reg/v/f:SI 48 [ ptr ]) [1 MEM[(struct aa *)ptr_1(D)].a.u.i+0 S4 A32]) 5076 if (GET_CODE

[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-07 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #19 from Richard Biener --- (In reply to sandra from comment #18) > Hmmm, it looks to me like things are going wrong in the tree fre1 pass too. > I commented out the redundant zero store in the test case to see what would > happen, l

[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-07 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #18 from sandra at gcc dot gnu.org --- Hmmm, it looks to me like things are going wrong in the tree fre1 pass too. I commented out the redundant zero store in the test case to see what would happen, like long __attribute__((noipa)) f

[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #17 from Richard Biener --- x86 splits large stores only after reload it seems. Also on x86 GIMPLE store-merging triggers, merging the two = 0 stores so I need -fno-store-merging to even get two stores there. Still the issue in CSE

[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #16 from Richard Biener --- OK, now looking myself. RTL expansion creates (insn 8 7 9 2 (set (mem/j:SI (reg/v/f:SI 47 [ bv ]) [1 bv_3(D)->b.u.f+0 S4 A32]) (reg:SI 49)) "t.c":12:13 -1 (nil)) (insn 9 8 10 2 (set (mem/j:SI

[Bug tree-optimization/93946] Bogus redundant store removal

2020-04-05 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #15 from sandra at gcc dot gnu.org --- Hmmm. I've gone over this code 2 or 3 times now, and I'm still convinced the problem is in the alias analysis, not the scheduler. I've stepped deeper into the code in the debugger, and here is t

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #14 from Richard Biener --- (In reply to sandra from comment #13) > Well, no. The problem is that the scheduler is moving > > ldw r2, 0(r4) > > ahead of > > stw zero, 0(r5) > > which is incorrect because

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-28 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #13 from sandra at gcc dot gnu.org --- Well, no. The problem is that the scheduler is moving ldw r2, 0(r4) ahead of stw zero, 0(r5) which is incorrect because the pointers in r4 and r5 are aliases. So at

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-28 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #12 from rguenther at suse dot de --- On March 27, 2020 9:19:33 PM GMT+01:00, "sandra at gcc dot gnu.org" wrote: >https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 > >--- Comment #11 from sandra at gcc dot gnu.org --- >RTL before sc

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-27 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #11 from sandra at gcc dot gnu.org --- RTL before sched2 does look sane and similar to that generated for x86 with -m32. I've been trying to step through sched2. I think that where things get interesting is the call to true_dependenc

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-25 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #10 from Richard Biener --- (In reply to sandra from comment #9) > Both the new test cases are failing on nios2 at -Os, -O2, and -O3. I've > done some analysis, but I'm not sure exactly where the problem lies, and > whether this is a

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-24 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 sandra at gcc dot gnu.org changed: What|Removed |Added CC||sandra at gcc dot gnu.org ---

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 Richard Biener changed: What|Removed |Added Keywords||wrong-code Status|ASSIGNED

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-03 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #7 from CVS Commits --- The master branch has been updated by Richard Guenther : https://gcc.gnu.org/g:3d6fd7ce6dc4b6baa11920387d62dc001980aa70 commit r10-6993-g3d6fd7ce6dc4b6baa11920387d62dc001980aa70 Author: Richard Biener Date:

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #6 from Richard Biener --- Created attachment 47948 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47948&action=edit DSE part I'm now testing the combined (and will squash if that succeeds).

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 Richard Biener changed: What|Removed |Added Attachment #47922|0 |1 is obsolete|

[Bug tree-optimization/93946] Bogus redundant store removal

2020-03-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #4 from Richard Biener --- OK, so the fix works but on x86_64 with -m32 RTL opts (sched2) end up wrecking things... foo: .LFB0: .cfi_startproc movl4(%esp), %eax movl8(%esp), %edx movl$1, (%

[Bug tree-optimization/93946] Bogus redundant store removal

2020-02-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 --- Comment #3 from Richard Biener --- Created attachment 47922 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47922&action=edit patch I am testing This is what I have now. Got to factor out that alias set. In VN consider passing ao_ref

[Bug tree-optimization/93946] Bogus redundant store removal

2020-02-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 Richard Biener changed: What|Removed |Added CC||law at gcc dot gnu.org --- Comment #2 f

[Bug tree-optimization/93946] Bogus redundant store removal

2020-02-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93946 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed|