|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.jikesrvm.compilers.opt.inlining.ClassLoadingDependencyManager
public final class ClassLoadingDependencyManager
This class acts as an intermediary between RVMClassLoader and the optimizing compiler's dependency database. Just before a class is marked as INITIALIZED, RVMClass.initialize() invokes ClassLoadingDependencyManager.classInitialized(), which is responsible for identifying and performing all necessary invalidations of opt compiler code.
| Field Summary | |
|---|---|
private InvalidationDatabase |
db
Database holding information on class loading |
(package private) static boolean |
DEBUG
Debug execution |
private static PrintStream |
log
Stream used in debug tracing |
(package private) static boolean |
TRACE
Trace execution |
| Constructor Summary | |
|---|---|
ClassLoadingDependencyManager()
|
|
| Method Summary | |
|---|---|
void |
addNoSubclassDependency(RVMClass source,
CompiledMethod cm)
Record that the code currently being compiled (cm) must be invalidated if source ever has a subclass. |
void |
addNotOverriddenDependency(RVMMethod source,
CompiledMethod cm)
Record that the code currently being compiled (cm) must be invalidated if source is overridden. |
void |
classInitialized(RVMClass c,
boolean writingBootImage)
|
private void |
handleOverriddenMethods(RVMClass c)
Take action when a method is overridden. |
private void |
handleSubclassing(RVMClass c)
|
private void |
invalidate(CompiledMethod cm)
helper method to invalidate a particular compiled method |
private void |
processOverride(RVMMethod overridden)
|
(package private) void |
report(String s)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private final InvalidationDatabase db
static final boolean DEBUG
static final boolean TRACE
private static PrintStream log
| Constructor Detail |
|---|
public ClassLoadingDependencyManager()
| Method Detail |
|---|
public void classInitialized(RVMClass c,
boolean writingBootImage)
classInitialized in interface ClassLoadingListener
public void addNotOverriddenDependency(RVMMethod source,
CompiledMethod cm)
public void addNoSubclassDependency(RVMClass source,
CompiledMethod cm)
private void handleOverriddenMethods(RVMClass c)
c - a class that has just been loaded.private void processOverride(RVMMethod overridden)
private void handleSubclassing(RVMClass c)
private void invalidate(CompiledMethod cm)
void report(String s)
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||