Don't propagate for a more expensive reg-reg move.
authorliuhongt <hongtao.liu@intel.com>
Mon, 24 Jan 2022 10:17:47 +0000 (18:17 +0800)
committerliuhongt <hongtao.liu@intel.com>
Tue, 8 Feb 2022 04:39:31 +0000 (12:39 +0800)
commit0103c2e4082c5a342a6834d31ea52bc7e5498016
tree36b29e21841b7dc2285079e3b35b5b50f4329871
parentcc2430c122a49130b2b0a8a67455db30bbb8fd00
Don't propagate for a more expensive reg-reg move.

For i386, it enables optimization like:

        vmovd   %xmm0, %edx
-       vmovd   %xmm0, %eax
+       movl    %edx, %eax

gcc/ChangeLog:

PR rtl-optimization/104059
* regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
for a more expensive reg-reg move.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr104059.c: New test.
gcc/regcprop.cc
gcc/testsuite/gcc.target/i386/pr104059.c [new file with mode: 0644]