This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RTL generation patterns


> 
> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]