Skip to content
Snippets Groups Projects
Commit 58b46683 authored by Segher Boessenkool's avatar Segher Boessenkool Committed by Segher Boessenkool
Browse files

combine: Don't split insns if half is unused (PR82621)

If we have a PARALLEL of two SETs, and one half is unused, we currently
happily split that into two instructions (although the unused one is
useless).  Worse, as PR82621 shows, combine will happily merge this
insn into I3 even if some intervening insn sets the same register
again, which is wrong.

This fixes it by not splitting PARALLELs with REG_UNUSED notes.  It
all is handled fine by combine in that case: just the "single set
that is unused" case isn't handled properly.

This also results in better code: combine will now actually throw
away the unused SET.  (It still won't do that in an I3).


	PR rtl-optimization/82621
	* combine.c (try_combine): Do not split PARALLELs of two SETs if the
	dest of one of those SETs is unused.

From-SVN: r254874
parent 107d4a0f
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment