'edge_instrument' - instruments HIR with extra instructions to collect edge profile information

The optimization creates a map of counters and inserts counter increment instructions for every edge in Control Flow Graph.
The resulted map of counters is registered in edge profile collector.
Once profile collector decides that method profile is ready it initiates method recompilation process.

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 during instrumentation and annotation phases

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_instrument (last edited 2009-09-20 21:54:21 by localhost)