[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-09 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 Segher Boessenkool changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|---

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-09 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #20 from Segher Boessenkool --- Author: segher Date: Thu Nov 9 10:23:30 2017 New Revision: 254565 URL: https://gcc.gnu.org/viewcvs?rev=254565=gcc=rev Log: Backport from mainline 2017-11-01 Segher Boessenkool

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-09 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #19 from Segher Boessenkool --- Author: segher Date: Thu Nov 9 10:21:06 2017 New Revision: 254564 URL: https://gcc.gnu.org/viewcvs?rev=254564=gcc=rev Log: Backport from mainline 2017-11-01 Segher Boessenkool

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-01 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #18 from Segher Boessenkool --- Excellent, thanks for testing! I'll backport it next week.

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-01 Thread sje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #17 from Steve Ellcey --- Yes, this fixed my SPEC problem.

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-01 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #16 from Segher Boessenkool --- Should be fixed on trunk now. Steve, could you see if it fixes the SPEC problem for you?

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-01 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #15 from Segher Boessenkool --- Author: segher Date: Wed Nov 1 16:40:42 2017 New Revision: 254315 URL: https://gcc.gnu.org/viewcvs?rev=254315=gcc=rev Log: combine: Fix bug in giving up placing REG_DEAD notes (PR82683) When we have

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-11-01 Thread sje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #14 from Steve Ellcey --- (In reply to Segher Boessenkool from comment #13) > I have a simpler patch. It is testing... Can you attach your patch to this defect so I can test it as well.

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-27 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 Segher Boessenkool changed: What|Removed |Added Status|NEW |ASSIGNED

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-27 Thread sje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #12 from Steve Ellcey --- Created attachment 42491 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42491=edit Patch that fixes the test case Here is a possible patch. It fixes the test case and I am doing a bootstrap and make

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-26 Thread sje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #11 from Steve Ellcey --- I think I see where this is going wrong but I don't know what to do about it. In try_combine, line 3288 we have i2 and i3 of: (insn 18 16 19 3 (set (reg:DI 91) (ashift:DI (reg:DI 83 [ _26 ])

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-26 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #10 from Segher Boessenkool --- reg-notes.def says /* The value in REG dies in this insn (i.e., it is not needed past this insn). If REG is set in this insn, the REG_DEAD note may, but need not, be omitted. */ REG_NOTE

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #9 from Segher Boessenkool --- The "failed to match" messages are hugely important (in fact, I want it to print more: _why_ did combination fail, in all the cases where it is not because of recog). The "deferring deletion" messages

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #8 from Wilco --- (In reply to Segher Boessenkool from comment #7) > Yes, it requires to look back a bit (the info always is in this dump > file though!) > > The alternative would be to dump even more info, grow the log files > by a

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #7 from Segher Boessenkool --- Yes, it requires to look back a bit (the info always is in this dump file though!) The alternative would be to dump even more info, grow the log files by a factor two or so.

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #6 from Wilco --- (In reply to Segher Boessenkool from comment #5) > Oh, it does show the intermediate results: > > Trying 18 -> 19: > Successfully matched this instruction: > (set (reg/f:DI 78 [ _7 ]) > (plus:DI (ashift:DI

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #5 from Segher Boessenkool --- Oh, it does show the intermediate results: Trying 18 -> 19: Successfully matched this instruction: (set (reg/f:DI 78 [ _7 ]) (plus:DI (ashift:DI (reg:DI 83 [ _26 ]) (const_int 2 [0x2]))

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #4 from Wilco --- (In reply to Segher Boessenkool from comment #3) > Ah. So we start with > > insn_cost 4 for18: r91:DI=r83:DI<<0x2 > REG_DEAD r83:DI > insn_cost 4 for19: r78:DI=r76:DI+r91:DI > REG_DEAD r91:DI >

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #3 from Segher Boessenkool --- Ah. So we start with insn_cost 4 for18: r91:DI=r83:DI<<0x2 REG_DEAD r83:DI insn_cost 4 for19: r78:DI=r76:DI+r91:DI REG_DEAD r91:DI REG_DEAD r76:DI insn_cost 20 for20:

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 --- Comment #2 from Segher Boessenkool --- At the start of combine you have insn_cost 4 for18: r91:DI=r83:DI<<0x2 REG_DEAD r83:DI Is that death note not correct?

[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99

2017-10-24 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683 Wilco changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|