org.jikesrvm.adaptive.recompilation.instrumentation
Class InsertMethodInvocationCounter
java.lang.Object
org.jikesrvm.compilers.opt.driver.CompilerPhase
org.jikesrvm.adaptive.recompilation.instrumentation.InsertMethodInvocationCounter
public class InsertMethodInvocationCounter
- extends CompilerPhase
An CompilerPhase that inserts a method invocation counter on the first
basic block of the method. It uses a
InstrumentedEventCounterManager to obtain the space to put the
counters.
Note: one counter data, (MethodInvocationCounterData) is shared
across all methods, and is initialized at boot time. This is
unlike other kinds of instrumentation (such as basic block
counters) where a separate data object is maintained for each
method.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
InsertMethodInvocationCounter
public InsertMethodInvocationCounter()
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 basic block counters
- Specified by:
perform
in class CompilerPhase
- Parameters:
ir
- the governing IR