[Bug rtl-optimization/82683] Combine: GCC generates bad code with -tune=thunderx2t99
wilco at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 24 13:06:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82683
--- Comment #6 from Wilco <wilco at gcc dot gnu.org> ---
(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 (reg:DI 83 [ _26 ])
> (const_int 2 [0x2]))
> (reg/f:DI 76 [ _4 ])))
> allowing combination of insns 18 and 19
> original costs 4 + 4 = 8
> replacement cost 8
> deferring deletion of insn with uid = 18.
> modifying insn i3 19: r78:DI=r83:DI<<0x2+r76:DI
> REG_DEAD r83:DI
> REG_DEAD r76:DI
> deferring rescan insn with uid = 19.
>
> (How do you dump things? You forgot a -all?)
Yes, but this is all it shows for the bit that goes wrong:
allowing combination of insns 19, 20 and 21
original costs 8 + 20 + 4 = 32
replacement costs 28 + 4 = 32
deferring rescan insn with uid = 21.
deferring deletion of insn with uid = 19.
modifying insn i2 20: r83:DI=sign_extend([r83:DI*0x4+r76:DI])
REG_DEAD r76:DI
deferring rescan insn with uid = 20.
modifying insn i3 21: r82:SI=r83:DI#0
REG_DEAD r83:DI
REG_DEAD r83:DI
REG_DEAD r83:DI
deferring rescan insn with uid = 21.
I guess it would be good if it shows the instructions it's trying to combine in
this part, because it's impossible to follow when the instructions involved
have been changed already...
More information about the Gcc-bugs
mailing list