harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From George Timoshenko <george.timoshe...@gmail.com>
Subject Re: [drlvm][opt] what does 'irBuilderFlags.expandMemAddrs' mean?
Date Mon, 19 May 2008 04:16:55 GMT
> I also found LdInd, LdRef, LdVar
> Where are they used? and What is the difference between these and TauLdInd?

LdInd: its a kind of wrapper. It can be used for load of anything from 
memory. But it is not used for java AFAIR.
(For Java you always know what you are trying to load so for example for 
getfield you calculate field address - LdFieldAddr, make null- and type- 
checks and TauLdInd w/o that wrapper )

LdRef - is used for loading strings and SystemClasses. the address for 
the load explicitly appears only at code selector. In HLO LdRef 
instruction keeps enclosing method and constant pool index inside for 
further address request. (VM provides the address at compile time for 
such items)

LdVar - is used for operations with local variables. It is not actually 
a real load from memory. Some var may happen to be assigned to a 
register later in code generator. Code selector selects the inst into 
PseudoCopy instruction. And later PseudoCopy will disappeare or become a 
real MOV.

View raw message