You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by Apache Wiki <wi...@apache.org> on 2008/05/12 10:33:35 UTC

[Harmony Wiki] Update of "Jitrino OPT/gcpoints" by Mikhail Fursov

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

New page:
'gcpoints' LIR transformation is an early stage of [:Jitrino_OPT/gcmap: gcmap] pass.
[[BR]][[BR]]
The sole purpose of this transformation is insertion of CopyPseudoInsts instructions to extends live-ranges for object(base) operands.
[[BR]][[BR]]
The CopyPseudoInsts are inserted only in the case if the base operand have live managed pointer operand derived from the base and the offset of managed pointer from the base is not a compilation time constant. 
[[BR]]
The example of unknown offset is an iteration of array in loop: the base pointer can be dead in loop while managed pointer is alive and changes every new iteration.
[[BR]][[BR]]
The reason to extend the live range of object operands is due to the fact that JIT-GC interface requires from JIT to report base for every managed pointer. 
[[BR]]
Making base object alive we can derive offset of managed pointer during enumeration in runtime: the offset is a distance to the nearest base included to the enumeration set.