Differences between revisions 3 and 4
Revision 3 as of 2008-05-14 07:35:29
Size: 1114
Comment:
Revision 4 as of 2009-09-20 21:54:51
Size: 1119
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
[[BR]][[BR]] <<BR>><<BR>>
Line 4: Line 4:
The optimization reads profile information from collected by [http://harmony.apache.org/subcomponents/drlvm/EM.html#PC edge profile collector] and sets execution count and edge probability values for every node and edge in Control Flow Graph.
[[BR]][[BR]]
The optimization reads profile information from collected by [[http://harmony.apache.org/subcomponents/drlvm/EM.html#PC|edge profile collector]] and sets execution count and edge probability values for every node and edge in Control Flow Graph.
<<BR>><<BR>>
Line 7: Line 7:
[[BR]] <<BR>>
Line 9: Line 9:
[[BR]] <<BR>>
Line 11: Line 11:
[[BR]][[BR]]
To use IR based profile mapping compiler must ensure that the IR of the method is the same as it was during [:Jitrino_OPT/edge_instrument: edge_instrument] phase.
[[BR]][[BR]]
<<BR>><<BR>>
To use IR based profile mapping compiler must ensure that the IR of the method is the same as it was during [[Jitrino_OPT/edge_instrument| edge_instrument]] phase.
<<BR>><<BR>>
Line 16: Line 16:
implementation file: [http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp?view=markup http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp] implementation file: [[http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp?view=markup|http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp]]

'edge_annotate' - annotates HIR with profile information collected by edge profiler

The optimization reads profile information from collected by edge profile collector and sets execution count and edge probability values for every node and edge in Control Flow Graph.

There are 2 ways of mapping of profile information to the methods IR:
1) IR based profile mapping
2) Bytecode based profile mapping

To use IR based profile mapping compiler must ensure that the IR of the method is the same as it was during edge_instrument phase.

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.

implementation file: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp

Jitrino_OPT/edge_annotate (last edited 2009-09-20 21:54:51 by localhost)