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?