|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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 |