Package | Description |
---|---|
org.jikesrvm.adaptive.controller | |
org.jikesrvm.adaptive.database.methodsamples | |
org.jikesrvm.adaptive.util | |
org.jikesrvm.classloader |
Provides classes that implement the classloading system as well as
data types that represent Java entities like classes, fields, methods
and primitives.
|
org.jikesrvm.compilers.baseline | |
org.jikesrvm.compilers.baseline.ia32 | |
org.jikesrvm.compilers.common | |
org.jikesrvm.compilers.opt.bc2ir |
Provides classes that implement the transformation from bytecode to the
high-level intermediate representation (HIR).
|
org.jikesrvm.compilers.opt.driver | |
org.jikesrvm.compilers.opt.inlining | |
org.jikesrvm.compilers.opt.runtimesupport | |
org.jikesrvm.compilers.opt.runtimesupport.ia32 | |
org.jikesrvm.compilers.opt.specialization | |
org.jikesrvm.jni | |
org.jikesrvm.jni.ia32 | |
org.jikesrvm.mm.mminterface | |
org.jikesrvm.mm.mmtk | |
org.jikesrvm.osr | |
org.jikesrvm.osr.ia32 | |
org.jikesrvm.runtime |
Modifier and Type | Field and Description |
---|---|
private CompiledMethod |
HotMethodEvent.cm
The compiled method associated querries.
|
Modifier and Type | Method and Description |
---|---|
CompiledMethod |
ControllerPlan.doRecompile()
This method will recompile the method designated by the controller plan
ControllerPlan.getCompPlan() . |
CompiledMethod |
HotMethodEvent.getCompiledMethod() |
Modifier and Type | Method and Description |
---|---|
(package private) void |
RecompilationStrategy.considerHotCallEdge(CompiledMethod cmpMethod,
AINewHotEdgeEvent event) |
(package private) void |
AnalyticModel.considerHotCallEdge(CompiledMethod cmpMethod,
AINewHotEdgeEvent event)
This function defines how the analytic model handles a
AINewHotEdgeEvent.
|
(package private) ControllerPlan |
RecompilationStrategy.considerHotMethod(CompiledMethod cmpMethod,
HotMethodEvent hme) |
(package private) ControllerPlan |
AnalyticModel.considerHotMethod(CompiledMethod cmpMethod,
HotMethodEvent hme)
This method is the main decision making loop for all
recompilation strategies that use the analytic model.
|
(package private) boolean |
AnalyticModel.considerOSRRecompilation(CompiledMethod cmpMethod,
HotMethodEvent hme,
ControllerPlan plan) |
static ControllerPlan |
ControllerMemory.findMatchingPlan(CompiledMethod cmpMethod)
Find the plan for the compiled method that is passed
|
(package private) int |
RecompilationStrategy.getPreviousCompiler(CompiledMethod cmpMethod) |
(package private) abstract RecompilationChoice[] |
AnalyticModel.getViableRecompilationChoices(int prevCompiler,
CompiledMethod cmpMethod)
Computes the set of optimization choices that should be
considered by the cost-benefit model, given the previous compiler.
|
(package private) RecompilationChoice[] |
MultiLevelAdaptiveModel.getViableRecompilationChoices(int prevCompiler,
CompiledMethod cmpMethod) |
(package private) ControllerPlan |
RecompileOptChoice.makeControllerPlan(CompiledMethod cmpMethod,
int prevCompiler,
double prevTimeForMethod,
double bestActionTime,
double expectedCompilationTime)
Return a controller plan that will start this recompilation choice
in action.
|
(package private) abstract ControllerPlan |
RecompilationChoice.makeControllerPlan(CompiledMethod cmpMethod,
int prevCompiler,
double prevTimeFormethod,
double bestActionTime,
double bestCost)
Return a controller plan that will start this recompilation choice
in action.
|
Constructor and Description |
---|
AINewHotEdgeEvent(CompiledMethod _cm,
double _numSamples,
double _boostFactor) |
AINewHotEdgeEvent(CompiledMethod _cm,
int _numSamples,
double _boostFactor) |
HotMethodEvent(CompiledMethod _cm,
double _numSamples) |
HotMethodEvent(CompiledMethod _cm,
int _numSamples) |
HotMethodRecompilationEvent(CompiledMethod _cm,
double _numSamples) |
HotMethodRecompilationEvent(CompiledMethod _cm,
int _numSamples) |
Modifier and Type | Field and Description |
---|---|
(package private) CompiledMethod[] |
MethodCountSet.cms
array of compiled methods
|
Constructor and Description |
---|
MethodCountSet(CompiledMethod[] _cms,
double[] _counters)
Constructor
|
Modifier and Type | Method and Description |
---|---|
static void |
AOSGenerator.baseCompilationCompleted(CompiledMethod cm) |
void |
AOSLogging.controllerNotifiedForHotness(CompiledMethod hotMethod,
double numSamples)
This method logs that the controller is notified of a
candidate to be recompiled due to hotness;
i.e., the method has been inserted in the controller queue.
|
void |
AOSLogging.recordCompileTime(CompiledMethod cm,
double expectedCompilationTime)
This method logs the actual compilation time for the given compiled method.
|
Modifier and Type | Field and Description |
---|---|
protected CompiledMethod |
RVMMethod.currentCompiledMethod
current compiled method for this method
|
Modifier and Type | Method and Description |
---|---|
protected CompiledMethod |
SpecializedMethod.compileSpecializedMethod(RVMMethod template,
TypeReference[] specializedParams)
Compile a specialized version of a template method.
|
protected CompiledMethod |
NormalMethod.genCode() |
protected CompiledMethod |
AbstractMethod.genCode()
By definition, abstract methods do not have associated code.
|
protected CompiledMethod |
NativeMethod.genCode() |
protected abstract CompiledMethod |
RVMMethod.genCode()
Generates the code for this method.
|
CompiledMethod |
RVMMethod.getCurrentCompiledMethod()
Get the current compiled method for this method.
|
Modifier and Type | Method and Description |
---|---|
void |
RVMMethod.invalidateCompiledMethod(CompiledMethod cm)
Invalidates the given compiled method if it is the current compiled code
for this method.
|
void |
RVMMethod.replaceCompiledMethod(CompiledMethod compiledMethod)
Change machine code that will be used by future executions of this method
(ie. optimized <-> non-optimized)
Side effect: updates JTOC or method dispatch tables
("type information blocks")
for this class and its subclasses
|
Modifier and Type | Class and Description |
---|---|
class |
BaselineCompiledMethod
Compiler-specific information associated with a method's machine
instructions.
|
Modifier and Type | Field and Description |
---|---|
protected CompiledMethod |
TemplateCompilerFramework.compiledMethod
The compiledMethod assigned to this compilation of method
|
Modifier and Type | Method and Description |
---|---|
static CompiledMethod |
BaselineCompiler.compile(NormalMethod method)
Compile the given method with the baseline compiler.
|
protected CompiledMethod |
BaselineBootImageCompiler.compileMethod(NormalMethod method,
TypeReference[] params) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
TemplateCompilerFramework.emit_invoke_compiledmethod(CompiledMethod cm) |
Constructor and Description |
---|
TemplateCompilerFramework(CompiledMethod cm) |
Modifier and Type | Method and Description |
---|---|
void |
BaselineExceptionDeliverer.deliverException(CompiledMethod compiledMethod,
Address catchBlockInstructionAddress,
Throwable exceptionObject,
AbstractRegisters registers)
Pass control to a catch block.
|
protected void |
BaselineCompilerImpl.emit_invoke_compiledmethod(CompiledMethod cm)
OSR routine to emit code to invoke a compiled method (with known jtoc
offset).
|
void |
BaselineGCMapIterator.setupIterator(CompiledMethod compiledMethod,
Offset instructionOffset,
Address fp)
Set the iterator to scan the map at the machine instruction offset
provided.
|
void |
BaselineExceptionDeliverer.unwindStackFrame(CompiledMethod compiledMethod,
AbstractRegisters registers)
Unwind a stackframe.
|
Modifier and Type | Class and Description |
---|---|
(package private) class |
HardwareTrapCompiledMethod
Information associated with artificial stackframe inserted by hardware
trap handler.
|
Modifier and Type | Field and Description |
---|---|
private static CompiledMethod[][] |
CompiledMethods.compiledMethods
Java methods that have been compiled into machine code.
|
Modifier and Type | Method and Description |
---|---|
static CompiledMethod |
RuntimeCompiler.baselineCompile(NormalMethod method)
This method will compile the passed method using the baseline compiler.
|
static CompiledMethod |
RuntimeCompiler.compile(NativeMethod method)
Compile the stub for a native method when it is first invoked.
|
static CompiledMethod |
BootImageCompiler.compile(NativeMethod method)
Compile a native method.
|
static CompiledMethod |
RuntimeCompiler.compile(NormalMethod method)
Compile a Java method when it is first invoked.
|
static CompiledMethod |
BootImageCompiler.compile(NormalMethod method) |
static CompiledMethod |
BootImageCompiler.compile(NormalMethod method,
TypeReference[] params) |
protected abstract CompiledMethod |
BootImageCompiler.compileMethod(NormalMethod method,
TypeReference[] params)
Compiles a method with bytecodes.
|
static CompiledMethod |
CompiledMethods.createCompiledMethod(RVMMethod m,
int compilerType) |
static CompiledMethod |
CompiledMethods.createHardwareTrapCompiledMethod() |
protected static CompiledMethod |
RuntimeCompiler.fallback(NormalMethod method)
This method uses the default compiler (baseline) to compile a method
It is typically called when a more aggressive compilation fails.
|
static CompiledMethod |
CompiledMethods.findMethodForInstruction(Address ip)
Find the method whose machine code contains the specified instruction.
|
static CompiledMethod |
CompiledMethods.getCompiledMethod(int compiledMethodId) |
static CompiledMethod |
CompiledMethods.getCompiledMethodUnchecked(int cmid) |
private static CompiledMethod |
RuntimeCompiler.optCompile(NormalMethod method,
CompilationPlan plan)
Attempt to compile the passed method with the Compiler.
|
static CompiledMethod |
RuntimeCompiler.optCompileWithFallBack(NormalMethod method)
This method tries to compile the passed method with the Compiler,
using the default compilation plan.
|
static CompiledMethod |
RuntimeCompiler.optCompileWithFallBack(NormalMethod method,
CompilationPlan plan)
This method tries to compile the passed method with the Compiler
with the passed compilation plan.
|
private static CompiledMethod |
RuntimeCompiler.optCompileWithFallBackInternal(NormalMethod method,
CompilationPlan plan)
This real method that performs the opt compilation.
|
static CompiledMethod |
RuntimeCompiler.recompileWithOptOnStackSpecialization(CompilationPlan plan) |
Modifier and Type | Method and Description |
---|---|
static void |
RuntimeCompiler.record(byte compiler,
NativeMethod method,
CompiledMethod compiledMethod)
This method records the time and sizes (bytecode and machine code) for
a compilation
|
static void |
RuntimeCompiler.record(byte compiler,
NormalMethod method,
CompiledMethod compiledMethod)
This method records the time and sizes (bytecode and machine code) for
a compilation.
|
private static void |
CompiledMethods.setCompiledMethod(int cmid,
CompiledMethod cm) |
static void |
CompiledMethods.setCompiledMethodObsolete(CompiledMethod compiledMethod) |
void |
HardwareTrapGCMapIterator.setupIterator(CompiledMethod compiledMethod,
Offset instructionOffset,
Address framePtr) |
Modifier and Type | Field and Description |
---|---|
private CompiledMethod |
GenerationContext.original_cm
The compiled method assigned for this compilation of original_method
|
Modifier and Type | Method and Description |
---|---|
(package private) CompiledMethod |
GenerationContext.getOriginalCompiledMethod() |
Constructor and Description |
---|
GenerationContext(NormalMethod meth,
TypeReference[] params,
CompiledMethod cm,
OptOptions opts,
InlineOracle ip)
Use this constructor to create an outermost (non-inlined)
GenerationContext.
|
Modifier and Type | Method and Description |
---|---|
private CompiledMethod |
OptimizingBootImageCompiler.baselineCompile(NormalMethod method) |
static CompiledMethod |
OptimizingCompiler.compile(CompilationPlan cp)
Invoke the opt compiler to execute a compilation plan.
|
protected CompiledMethod |
OptimizingBootImageCompiler.compileMethod(NormalMethod method,
TypeReference[] params) |
Modifier and Type | Field and Description |
---|---|
private CompiledMethod |
CompilationState.cm |
Modifier and Type | Method and Description |
---|---|
CompiledMethod |
CompilationState.getCompiledMethod() |
Modifier and Type | Method and Description |
---|---|
void |
ClassLoadingDependencyManager.addNoSubclassDependency(RVMClass source,
CompiledMethod cm)
Record that the code currently being compiled (cm) must be
invalidated if source ever has a subclass.
|
void |
ClassLoadingDependencyManager.addNotOverriddenDependency(RVMMethod source,
CompiledMethod cm)
Record that the code currently being compiled (cm) must be
invalidated if source is overridden.
|
private void |
ClassLoadingDependencyManager.invalidate(CompiledMethod cm) |
Constructor and Description |
---|
CompilationState(Instruction call,
boolean isExtant,
OptOptions options,
CompiledMethod cm,
int realBCI) |
Modifier and Type | Class and Description |
---|---|
class |
OptCompiledMethod
An implementation of CompiledMethod for the OPT compiler.
|
Modifier and Type | Method and Description |
---|---|
void |
OptCompiledMethod.applyCodePatches(CompiledMethod cm)
Applies the code patches to the INSTRUCTION array of cm.
|
void |
OptGenericGCMapIterator.setupIterator(CompiledMethod cm,
Offset instructionOffset,
Address framePtr)
Initialize the iterator for another stack frame scan
|
Modifier and Type | Method and Description |
---|---|
void |
OptExceptionDeliverer.deliverException(CompiledMethod compiledMethod,
Address catchBlockInstructionAddress,
Throwable exceptionObject,
AbstractRegisters registers)
Pass control to a catch block.
|
void |
OptExceptionDeliverer.unwindStackFrame(CompiledMethod compiledMethod,
AbstractRegisters registers)
Unwind a stackframe.
|
Modifier and Type | Field and Description |
---|---|
(package private) CompiledMethod |
SpecializedMethod.compiledMethod
Corresponding compiled method
|
Modifier and Type | Method and Description |
---|---|
CompiledMethod |
SpecializedMethod.getCompiledMethod() |
CompiledMethod |
SpecializationContext.specialCompile(NormalMethod source)
Generates code for a specialized version of source in this
context.
|
CompiledMethod |
InvokeeThreadLocalContext.specialCompile(NormalMethod source)
Generate code to specialize a method in this context.
|
Modifier and Type | Method and Description |
---|---|
void |
SpecializedMethod.setCompiledMethod(CompiledMethod cm) |
static void |
SpecializedMethodPool.storeSpecializedMethod(CompiledMethod cm,
int smid)
Associates a particular compiled method with a specialized method id.
|
Modifier and Type | Class and Description |
---|---|
class |
JNICompiledMethod
Information associated with artifical stackframe inserted at the
transition from Jave to JNI Native C.
|
Modifier and Type | Method and Description |
---|---|
static CompiledMethod |
JNICompiler.compile(NativeMethod method)
Compiles a method to handle the Java to C transition and back
Transitioning from Java to C then back:
Set up stack frame and save non-volatile registers
Set up jniEnv - set up a register to hold JNIEnv and store
the Processor in the JNIEnv for easy access
Move all native method arguments on to stack (NB at this point all
non-volatile state is saved)
Record the frame pointer of the last Java frame (this) in the jniEnv
Call out to convert reference arguments to IDs
Set processor as being "in native"
Set up stack frame and registers for transition to C
Call out to C
Save result to stack
Transition back from "in native" to "in Java", take care that the
Processor isn't "blocked in native", ie other processors have decided to
start a GC and we're not permitted to execute Java code whilst this
occurs
Convert a reference result (currently a JNI ref) into a true reference
Release JNI refs
Restore stack and place result in register
|
Modifier and Type | Method and Description |
---|---|
void |
JNIExceptionDeliverer.deliverException(CompiledMethod compiledMethod,
Address catchBlockInstructionAddress,
Throwable exceptionObject,
AbstractRegisters registers)
Deliver exception, not possible for JNI methods
|
void |
JNIGCMapIterator.setupIterator(CompiledMethod compiledMethod,
Offset instructionOffset,
Address framePtr) |
void |
JNIExceptionDeliverer.unwindStackFrame(CompiledMethod compiledMethod,
AbstractRegisters registers)
Unwind registers/stack through JNI method
|
Modifier and Type | Field and Description |
---|---|
private CompiledMethod[] |
SpecializedScanMethod.specializedMethods
We keep the specialized methods for key object reference patterns here.
|
Modifier and Type | Method and Description |
---|---|
GCMapIterator |
GCMapIteratorGroup.selectIterator(CompiledMethod compiledMethod)
Select iterator for scanning for object references in a stackframe.
|
abstract void |
GCMapIterator.setupIterator(CompiledMethod compiledMethod,
Offset instructionOffset,
Address framePtr)
Prepare to iterate over object references and JSR return addresses held by a stackframe.
|
Modifier and Type | Field and Description |
---|---|
private CompiledMethod |
ScanThread.compiledMethod |
Modifier and Type | Method and Description |
---|---|
static CompiledMethod |
SpecialCompiler.baselineCompile(ExecutionState state)
Compiles the method with the baseline compiler.
|
static CompiledMethod |
SpecialCompiler.optCompile(ExecutionState state)
generate prologue PSEUDO_bytecode from the state.
|
static CompiledMethod |
SpecialCompiler.recompileState(ExecutionState state,
boolean invalidate)
recompile an execution state
|
Modifier and Type | Method and Description |
---|---|
static boolean |
CodeInstaller.install(ExecutionState state,
CompiledMethod cm) |
private void |
OptExecutionStateExtractor.restoreValuesFromOptSaveVolatile(byte[] stack,
Offset osrFPoff,
TempRegisters registers,
int regmap,
CompiledMethod cm) |
Modifier and Type | Field and Description |
---|---|
private CompiledMethod |
StackBrowser.currentCompiledMethod
The current compiled method
|
Modifier and Type | Method and Description |
---|---|
CompiledMethod |
StackBrowser.getCompiledMethod() |
private CompiledMethod |
StackTrace.getCompiledMethod(int element) |
Modifier and Type | Method and Description |
---|---|
private StackTrace.Element |
StackTrace.createStandardStackTraceElement(CompiledMethod cm,
int off) |
abstract void |
ExceptionDeliverer.deliverException(CompiledMethod compiledMethod,
Address catchBlockInstructionAddress,
Throwable exceptionObject,
AbstractRegisters registers)
Stackframe's method has a "catch" block for exception being
thrown and control is to be passed to that catch block.
|
void |
StackBrowser.setCompiledMethod(CompiledMethod cm) |
abstract void |
ExceptionDeliverer.unwindStackFrame(CompiledMethod compiledMethod,
AbstractRegisters registers)
Stackframe's method has no "catch" block for exception being thrown
and stackframe is to be "unwound" as follows:
1. for a synchronized method, call ObjectModel.genericUnlock(),
passing it the appropriate "lock" object
for non-static methods, the lock is the method's
first argument ("this")
for static methods, the lock is the method's java.lang.Class
2. restore the non-volatile registers (including fp) that were saved
in the method's prologue, by copying them from the method's stackframe
save area into the provided "registers" object
|
Constructor and Description |
---|
Element(CompiledMethod cm,
int off)
Constructor for non-opt compiled methods
|
InternalStackTraceElement(CompiledMethod cm,
int off)
Constructor for non-opt compiled methods
|