org.jikesrvm.adaptive.recompilation.instrumentation
Class InsertInstructionCounters
java.lang.Object
org.jikesrvm.compilers.opt.driver.CompilerPhase
org.jikesrvm.adaptive.recompilation.instrumentation.InsertInstructionCounters
public class InsertInstructionCounters
- extends CompilerPhase
The following OPT phase inserts counters on all instructions in the
IR. It maintains one counter for each operand type, so it output
how many loads were executed, how many int_add's etc. This is
useful for debugging and assessing the accuracy of optimizations.
Note: The counters are added at the end of HIR, so the counts will
NOT reflect any changes to the code that occur after HIR.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
InsertInstructionCounters
public InsertInstructionCounters()
newExecution
public CompilerPhase newExecution(IR ir)
- Return this instance of this phase. This phase contains no
per-compilation instance fields.
- Overrides:
newExecution
in class CompilerPhase
- Parameters:
ir
- not used
- Returns:
- this
shouldPerform
public final boolean shouldPerform(OptOptions options)
- Description copied from class:
CompilerPhase
- This method determines if the phase should be run, based on the
Options object it is passed.
By default, phases are always performed.
Subclasses should override this method if they only want
to be performed conditionally.
- Overrides:
shouldPerform
in class CompilerPhase
- Parameters:
options
- the compiler options for the compilation
- Returns:
- true if the phase should be performed
getName
public final String getName()
- Specified by:
getName
in class CompilerPhase
- Returns:
- a String which is the name of the phase.
perform
public final void perform(IR ir)
- Insert a counter on every instruction, and group counts by
opcode type.
- Specified by:
perform
in class CompilerPhase
- Parameters:
ir
- the governing IR