combine: Fix 79910
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 20 Mar 2017 23:08:16 +0000 (00:08 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 20 Mar 2017 23:08:16 +0000 (00:08 +0100)
commite091a0fe0779f788ee11e81f0d3d6f5d7bd0e9f4
tree210f18d4a1f6bc25ab025dbe7945ff510192ccfd
parent366e9446961bf5d8efcb0bc5442e2d112dc17160
combine: Fix 79910

If the dest of an I0 or I1 is used in an insn before I2, as can happen
in various uncommon cases, and we manage to do the combination, the set
is moved to I2, which is wrong.  Don't allow combining the insns in this
case.

PR rtl-optimization/79910
* combine.c (can_combine_p): Do not allow combining an I0 or I1
if its dest is used by an insn before I2 (other than the combined
insns themselves, which are properly handled already).

From-SVN: r246297
gcc/ChangeLog
gcc/combine.c