|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.jikesrvm.adaptive.controller.RecompilationStrategy
org.jikesrvm.adaptive.controller.AnalyticModel
abstract class AnalyticModel
This class encapsulates the analytic model used by the controller to guide multi-level recompilation decisions. An early version of this model is described in the OOPSLA'2000 paper, but we've made some improvements since then...
MultiLevelAdaptiveModel| Constructor Summary | |
|---|---|
AnalyticModel()
|
|
| Method Summary | |
|---|---|
private ControllerPlan |
chooseOSRRecompilation(HotMethodEvent hme)
|
(package private) void |
considerHotCallEdge(CompiledMethod cmpMethod,
AINewHotEdgeEvent event)
This function defines how the analytic model handles a AINewHotEdgeEvent. |
(package private) ControllerPlan |
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 |
considerOSRRecompilation(CompiledMethod cmpMethod,
HotMethodEvent hme,
ControllerPlan plan)
|
(package private) double |
futureTimeForMethod(HotMethodEvent hme)
How much time do we expect to spend in the method in the future if we take no recompilation action? |
(package private) abstract RecompilationChoice[] |
getViableRecompilationChoices(int prevCompiler,
CompiledMethod cmpMethod)
Compute the set of optimization choices that should be considered by the cost-benefit model, given the previous compiler. |
(package private) void |
init()
Initialize the analytic model: NOTE: The call to super.init() uses the command line options to set up the optimization plans, so this must be run after the command line options are available. |
(package private) abstract void |
populateRecompilationChoices()
Initialize the set of "optimization choices" that the cost-benefit model will consider when using will consider when using adaptive compilation. |
| Methods inherited from class org.jikesrvm.adaptive.controller.RecompilationStrategy |
|---|
considerForRecompilation, createCompilationPlan, createControllerPlan, createOptimizationPlans, getMaxOptLevel, getPreviousCompiler, previousRecompilationAttempted, processCommandLineOptions |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
AnalyticModel()
| Method Detail |
|---|
abstract void populateRecompilationChoices()
abstract RecompilationChoice[] getViableRecompilationChoices(int prevCompiler,
CompiledMethod cmpMethod)
prevCompiler - The compiler compiler that was used to
comile cmpMethodcmpMethod - The compiled method being consideredvoid init()
init in class RecompilationStrategy
ControllerPlan considerHotMethod(CompiledMethod cmpMethod,
HotMethodEvent hme)
Given a HotMethodRecompilationEvent, this code will determine IF the method should be recompiled, and if so, HOW to perform the recompilation, i.e., what compilation plan should be used. The method returns a controller plan, which contains the compilation plan and other goodies.
considerHotMethod in class RecompilationStrategycmpMethod - the compiled method of interesthme - the HotMethodRecompilationEvent
boolean considerOSRRecompilation(CompiledMethod cmpMethod,
HotMethodEvent hme,
ControllerPlan plan)
private ControllerPlan chooseOSRRecompilation(HotMethodEvent hme)
hme - sample data for an outdated cmid
void considerHotCallEdge(CompiledMethod cmpMethod,
AINewHotEdgeEvent event)
considerHotCallEdge in class RecompilationStrategydouble futureTimeForMethod(HotMethodEvent hme)
hme - The HotMethodEvent in question
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||