fwprop fix for PR79405

Bernd Schmidt bschmidt@redhat.com
Thu Feb 16 19:44:00 GMT 2017


We have two registers being assigned to each other:

  (set (reg 213) (reg 209))
  (set (reg 209) (reg 213))

These being the only definitions, we are happy to forward propagate reg 
209 for reg 213 into a third insn, making a new use for reg 209. We are 
then happy to forward propagate reg 213 for it in the same insn... 
ending up in an infinite loop.

I don't really see an elegant way to prevent this, so the following just 
tries to detect the situation (and more general ones) by brute force. 
Bootstrapped and tested on x86_64-linux, verified that the test passes 
with a ppc cross, ok?


Bernd

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 79405.diff
Type: text/x-patch
Size: 2785 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20170216/2824f881/attachment.bin>


More information about the Gcc-patches mailing list