https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078
--- Comment #7 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- (In reply to jgreenhalgh from comment #6) > As mentioned in the original patch submission [1], the effect is to allow > removal the removal of temporary registers when shuffling arguments for a > call. Ok. In fact it is exactly the removal of a temporary reg which revealed the back-end bug. The overlapping live ranges so far protected us from running into this particular problem. > If S/390 passes small numbers of arguments in registers, I'd expect the net > result to be positive for performance. I agree. S/390 should be able to benefit from that so forget about reverting your patch :) I'll find a way to fix the patterns in question. Thanks for the explanation!