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/13 10:37:54 UTC

[Harmony Wiki] Update of "Jitrino OPT/edge instrument" 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/edge_instrument

New page:
''' 'edge_instrument' ''' - instruments HIR with extra instructions to collect edge profile information
[[BR]][[BR]]
The optimization creates a map of counters and inserts counter increment instructions for every edge in Control Flow Graph. 
[[BR]]
The resulted map of counters is registered in [http://harmony.apache.org/subcomponents/drlvm/EM.html#PC edge profile collector].
[[BR]]
Once profile collector decides that method profile is ready it initiates method recompilation process.
[[BR]]
[[BR]]
There are 2 ways of mapping of profile information to the methods IR:
[[BR]]
1) IR based profile mapping
[[BR]]
2) Bytecode based profile mapping
[[BR]][[BR]]
To use IR based profile mapping compiler must ensure that the IR of the method is the same during instrumentation and [:Jitrino_OPT/edge_annotate: annotation] phases
[[BR]][[BR]]
Bytecode based profile mapping is compiler independent. The 'key' for a counter is a 32-bit value composed from 16-bit offsets in bytecode: jump-offset and target-offset.