]> git.ipfire.org Git - thirdparty/gcc.git/commit
AVR: target/118878 - Don't ICE on result from paradoxical reg's alloc.
authorGeorg-Johann Lay <avr@gjlay.de>
Fri, 14 Feb 2025 17:53:29 +0000 (18:53 +0100)
committerGeorg-Johann Lay <avr@gjlay.de>
Fri, 14 Feb 2025 21:34:44 +0000 (22:34 +0100)
commit1dc4e220ca2272d668ddb3041ccd9e69b968e532
tree379d5ce8d25515b3515eab73019a31416393ecd8
parent2b9bdb2d286e6872f4195ba2e710130cf6b2805d
AVR: target/118878 - Don't ICE on result from paradoxical reg's alloc.

After register allocation, paradoxical subregs may become something
like  r20:SI += r22:SI  which doesn't make much sense as assembly code.
Hence avr_out_plus_1() used to ICE on such code.  However, paradoxical
subregs appear to be a common optimization device (instead of proper
mode demotion).

PR target/118878
gcc/
* config/avr/avr.cc (avr_out_plus_1): Don't ICE on result of
paradoxical reg's register allocation.
gcc/testsuite/
* gcc.target/avr/torture/pr118878.c: New test.
gcc/config/avr/avr.cc
gcc/testsuite/gcc.target/avr/torture/pr118878.c [new file with mode: 0644]