Wilco Dijkstra <wilco.dijks...@arm.com> writes: > Richard Sandiford wrote: > >> Insn patterns shouldn't check can_create_pseudo_p, because there's no >> guarantee that the associated split happens before RA. In this case it >> should be safe to reuse operand 0 after RA if you change it to: > > The goal is to only create and split this pattern before register allocation. > It's a transient pattern, combine creates it, and it is split immediately > after. > > Maybe !reload_completed is clearer as that is what several other > define_insn_and_split patterns do?
But the concept of a transient pattern doesn't really exist. We shouldn't rely for correctness on a split being applied before RA. If all we want to do is match and split something that combine generates, it would be better to do it as a pure define_split. Thanks, Richard