Wilco Dijkstra <wilco.dijks...@arm.com> writes: > Hi Richard, > >> Normally we should only put two instructions in the same define_insn >> if there's a specific ABI or architectural reason for not separating >> them. Doing it purely for optimisation reasons is going against the >> general direction of travel. So I think the first question is: why >> don't we simply delay the split until after reload instead, since >> that's the more normal way of handling this kind of thing? > > Well there are no optimizations that benefit from them being split, and there > is no gain from scheduling them independently. Keeping them together > means the linker could perform relaxations on the pair without adding new > relocations. So if we split after reload we'd still want to keep them > together.
The burden of proof is the other way though: there has to be a specific reason for keeping the instructions together, rather than a specific reason for splitting them. How we optimise things after RA changes with time. Thanks, Richard