RTL generation patterns

Jan Hubicka jh@suse.cz
Wed Feb 27 07:04:00 GMT 2002


> 
> I fail to understand how the second rtl
> (store)instrucion is generated from this pattern. how
> does  
> (match_operand:SI 0 "general_operand" "") produce
> (mem/f:SI (plus:SI (reg:SI 28)
>                 (const_int -16 [0xfffffff0])) 0)
> shouldnt it only produce a single rtl instruction like
> only a mem? please comment 

When optimizing, gcc forces all nontrivial operands to be load to
registers first in order to asist CSE to do more optimizations.
Also may be that ARM is simply refusing constant 1 as general_operand
making gcc code generator to do the move in order to make expander
math.

Honza
> 
> regards,
> danish
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Greetings - Send FREE e-cards for every occasion!
> http://greetings.yahoo.com



More information about the Gcc mailing list