[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 --- Comment #7 from Segher Boessenkool --- Author: segher Date: Thu Nov 9 10:23:30 2017 New Revision: 254565 URL: https://gcc.gnu.org/viewcvs?rev=254565&root=gcc&view=rev Log: Backport from mainline 2017-11-01 Segher Boessenkool PR rtl-optimization/64682 PR rtl-optimization/69567 PR rtl-optimization/69737 PR rtl-optimization/82683 * combine.c (distribute_notes) : If the new I2 sets the same register mentioned in the note, drop the note, unless it came from I3, in which case it should go to I3 again. Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/combine.c
[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 --- Comment #6 from Segher Boessenkool --- Author: segher Date: Thu Nov 9 10:21:06 2017 New Revision: 254564 URL: https://gcc.gnu.org/viewcvs?rev=254564&root=gcc&view=rev Log: Backport from mainline 2017-11-01 Segher Boessenkool PR rtl-optimization/64682 PR rtl-optimization/69567 PR rtl-optimization/69737 PR rtl-optimization/82683 * combine.c (distribute_notes) : If the new I2 sets the same register mentioned in the note, drop the note, unless it came from I3, in which case it should go to I3 again. Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/combine.c
[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 --- Comment #5 from Segher Boessenkool --- Author: segher Date: Wed Nov 1 16:40:42 2017 New Revision: 254315 URL: https://gcc.gnu.org/viewcvs?rev=254315&root=gcc&view=rev Log: combine: Fix bug in giving up placing REG_DEAD notes (PR82683) When we have a REG_DEAD note for a reg that is set in the new I2, we drop the note on the floor (we cannot find whether to place it on I2 or on I3). But the code I added to do this has a bug and does not always actually drop it. This patch fixes it. But that on its own is too pessimistic, it turns out, and we generate worse code. One case where we do know where to place the note is if it came from I3 (it should go to I3 again). Doing this fixes all of the regressions. PR rtl-optimization/64682 PR rtl-optimization/69567 PR rtl-optimization/69737 PR rtl-optimization/82683 * combine.c (distribute_notes) : If the new I2 sets the same register mentioned in the note, drop the note, unless it came from I3, in which case it should go to I3 again. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c
[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 Segher Boessenkool changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Segher Boessenkool --- Fixed everywhere.
[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 --- Comment #3 from Segher Boessenkool --- Author: segher Date: Fri Feb 12 18:32:21 2016 New Revision: 233384 URL: https://gcc.gnu.org/viewcvs?rev=233384&root=gcc&view=rev Log: combine: More distribute_notes trouble (PR69737) PR64682 is a problem in distribute_notes, where it has trouble putting a REG_DEAD note for a reg that is set twice in the right spot. My fix for that did the wrong thing for PR69567. And then my attempted fix for that one made PR64682 fail again. Instead, let's just lose the note in such complicated cases, like we already do in certain similar cases. Backport from mainline 2016-02-11 Segher Boessenkool PR rtl-optimization/64682 PR rtl-optimization/69567 PR rtl-optimization/69737 * combine.c (distribute_notes) : If the register is set in I2 as well, just lose it. Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/combine.c
[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 --- Comment #2 from Segher Boessenkool --- Author: segher Date: Thu Feb 11 22:26:35 2016 New Revision: 233356 URL: https://gcc.gnu.org/viewcvs?rev=233356&root=gcc&view=rev Log: combine: More distribute_notes trouble (PR69737) PR64682 is a problem in distribute_notes, where it has trouble putting a REG_DEAD note for a reg that is set twice in the right spot. My fix for that did the wrong thing for PR69567. And then my attempted fix for that one made PR64682 fail again. Instead, let's just lose the note in such complicated cases, like we already do in certain similar cases. PR rtl-optimization/64682 PR rtl-optimization/69567 PR rtl-optimization/69737 * combine.c (distribute_notes) : If the register is set in I2 as well, just lose it. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c
[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 Richard Biener changed: What|Removed |Added Priority|P3 |P1 Target Milestone|--- |5.4
[Bug rtl-optimization/69737] [5 Regression] FAIL: gcc.c-torture/execute/pr64682.c -O2 execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69737 Segher Boessenkool changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2016-02-09 CC||segher at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |segher at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Segher Boessenkool --- I am testing a patch.