On Mon, Oct 21, 2019 at 04:46:47PM +0100, Richard Earnshaw (lists) wrote: > On 19/10/2019 17:17, Segher Boessenkool wrote: > >Maybe we should simply disallow pseudo-to-pseudo (or even all) copies when > >combining more than two insns, always? I'll experiment.
> For the 2-insn case we don't try a split and simply give up; but when we > have a three-insn sequence we then combine tries harder and the generic > splitter does rewrite that in 2 insns. When doing a 2-2 combination, we don't try to split currently. We could, if that ever is useful, but that needs more work (to make sure we won't loop, for one thing). > Perhaps combine should never try a 3, or 4 insn combination where i0 or > i1 is a simple reg-reg move and only feeds one subsequent insn in the > sequence on the basis that if that was really going to help then it > would have been caught by the two-insn sequence. If it feeds both i2 > and i3 then that's a different matter, of course. Yeah... Maybe a simple move as producer where the reg dies in the consumer should not be tried with 3 or more insns? (Never doing combinations with trivial copies results in a few in a thousand extra insns, pretty bad). Segher