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

--- Comment #5 from Georg-Johann Lay <gjl at gcc dot gnu.org> ---
(In reply to Jeffrey A. Law from comment #4)
> "IRA doesn't understand the impact of paradoxical subreg" is a
> reasonable assessment.
RA should either assess the validity of a paradoxical subreg in the mode of a
subreg (SImode in this case), or just deal with the payload mode (HImode in
this case).

Paradoxicals behave differently on machines with small word size (like avr / 8
bits) than on a 32-bit machine:

On avr, HARD_REGNO_NREGS is larger for SImode (4 regs) than for HImode (2
regs).

Whereas on a 32-bit machine, QImode, HImode, SImode all just occupy one hard
reg.

Anyway, RA should just use the SUBREG_REG's mode, no?  What's the point of
letting ext-dce mark parts of a register as unused, when these parts are still
moved around and consume space on the stack and in the register file?

Reply via email to