harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Harmony Wiki] Update of "Jitrino OPT/copy" by Mikhail Fursov
Date Mon, 12 May 2008 08:06:44 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Harmony Wiki" for change notification.

The following page has been changed by Mikhail Fursov:
http://wiki.apache.org/harmony/Jitrino_OPT/copy

New page:
''' 'copy' ''' LIR transformation translates CopyPseudoInsts to corresponding native copying
instructions.
[[BR]]

Besides replacing of CopyPseudoInsts this optimization calls to SimpleStackOpndCoalescer to
remove unnecessary copying.
[[BR]]
SimpleStackOpndCoalescer removes redundant stack operands and translates redundant stack-stack
CopyPseudoInsts to copies of the same operand.
The latter is not expanded by the copy expansion pass and thus is not emitted.
[[BR]]
[[BR]]
SimpleStackOpndCoalescer "removes" copies if:
{{{
- both operands are StackAutoLayout 
- both are of the same size
- live-ranges of the operands do not overlap
}}}

Live-ranges are approximated by sets of spans like in the bin-packing register allocation.
SimpleStackOpndCoalescer
uses the same structures (Interval, Span) as the Jitrino bin-packing reg allocator. 
[[BR]]
[[BR]]
It is important that for non-static synchronized methods the method argument containing "this"
is not changed as it is used in getAddressOfThis. This is taken into account by making live-ranges
of "this" for such methods "eternal" (living till the end of the method)

Mime
View raw message