RTL generation patterns
Dmitry
diwil@eis.ru
Wed Feb 27 08:56:00 GMT 2002
On Wed, 27 Feb 2002 15:56:47 +0100
Jan Hubicka <jh@suse.cz> wrote:
> >
> > 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.
>
Just to check myself:
Isn't
mem/f:SI (plus:SI (reg:SI 28)
(const_int -16 [0xfffffff0])) 0)
just a simple 'indexed' location like :
insn -16(Rn), Rm
('insn' content of memory pointed by Rn-16 to Rm) ?
I think, if legitimate_address_p returns true for operands which satisfy:
GET_CODE(x)==PLUS && REG_P(XEXP(x,0)) && GET_CODE(XEXP(x,1)) == CONST_INT
this is.
Am I wrong?
~d
> Honza
> >
> > regards,
> > danish
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Greetings - Send FREE e-cards for every occasion!
> > http://greetings.yahoo.com
>
*********************************************************************
("`-''-/").___..--''"`-._ (\ Dimmy the Wild UA1ACZ
`6_ 6 ) `-. ( ).`-.__.`) Enterprise Information Sys
(_Y_.)' ._ ) `._ `. ``-..-' Nevsky prospekt, 20 / 44
_..`--'_..-_/ /--'_.' ,' Saint Petersburg, Russia
(il),-'' (li),' ((!.-' +7 (812) 314-8860, 5585314
*********************************************************************
More information about the Gcc
mailing list