https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71763

--- Comment #7 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(In reply to Michael Meissner from comment #6)
> Note if you put the requirement that you need direct move, you will
> potentially have the problem in power7.

Yes; we have that same problem for FPRs already, see PR70098.

> I'm really tired of the register allocator trying to be 'helpful' in
> de-optimizing BDNZ loops by spilling the index to the FP registers (and now
> Altivec registers).  I've seen instances of this popping up for at least the
> last 7 years.

Maybe it should always split an allocno where used in a jump insn?
The ctr* patterns can then just always require a GPR (or ctr).

Or something like Alan's output-reload-on-jump-insns patch.

Or, we should just not generate ctr* if it isn't allocated the ctr reg!
It is *supposed* to not do that, but still it often does.

Reply via email to