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

--- Comment #5 from denisc at gcc dot gnu.org ---
(In reply to Georg-Johann Lay from comment #3)
> Maybe this one is related to the fact that LRA doesn't set strict when it is
> in strict-RTL mode?  For example, with your latest test case:
> 
> $avr-gcc foo.c -S -mlra -O1 -mmcu=atmega128 -fdump-rtl-final
> -mlog=legitimate_address_p
> 
> ...
> avr_legitimate_address_p[f:reload(322)]: ret=1, mode=QI strict=0
> reload_completed=0 ra_in_progress=1 (reg_renumber):(r28 ---> r28)
> (plus:HI (reg/f:HI 28 r28)
>     (const_int 1 [0x1]))
> 
> avr_legitimate_address_p[f:reload(322)]: ret=1, mode=QI strict=0
> reload_completed=0 ra_in_progress=1 (reg_renumber):(r28 ---> r28)
> (plus:HI (reg/f:HI 28 r28)
>     (const_int 1 [0x1]))
> 
> avr_legitimate_address_p[f:reload(322)]: ret=1, mode=QI strict=0
> reload_completed=1 ra_in_progress=0 (reg_renumber):(r32 ---> r32)
> (plus:HI (reg/f:HI 32 __SP_L__)
>     (const_int 1 [0x1]))
> 
> avr_legitimate_address_p[f:postreload(323)]: ret=1, mode=QI strict=0
> reload_completed=1 ra_in_progress=0 (reg_renumber):(r32 ---> r32)
> (plus:HI (reg/f:HI 32 __SP_L__)
>     (const_int 1 [0x1]))
> 
> avr_legitimate_address_p[f:split2(327)]: ret=1, mode=QI strict=0
> reload_completed=1 ra_in_progress=0 (reg_renumber):(r32 ---> r32)
> (plus:HI (reg/f:HI 32 __SP_L__)
>     (const_int 1 [0x1]))
> 
> ...
> 
> i.e. strict=0 in all calls, and hence the backend returns ret=1 for SP+const
> addresses.

Our messages crossed.
I have to analyze your information.

Reply via email to