|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjpaul.Graphs.DiGraph<HMethod>
harpoon.Analysis.CallGraph
harpoon.Analysis.Quads.CallGraph
harpoon.Analysis.Quads.CachingCallGraph
public class CachingCallGraph
CachingCallGraph is a caching wrapper for a call
graph. In general, multiple stages in the compiler will use the
call graph so it is good to cache it. You should manually take
care of constructing a new call graph when you modify the code in
some way that might invalidate the old call graph.
| Field Summary |
|---|
| Fields inherited from class harpoon.Analysis.CallGraph |
|---|
navigator |
| Fields inherited from class jpaul.Graphs.DiGraph |
|---|
CACHING |
| Constructor Summary | |
|---|---|
CachingCallGraph(CallGraph cg)
Convenient to use constructor. |
|
CachingCallGraph(CallGraph cg,
boolean m_cache,
boolean cs_cache)
Creates a CachingCallGraph that caches the results
of cg. |
|
| Method Summary | |
|---|---|
Set |
callableMethods()
Returns the set of all the methods that can be called in the execution of the program. |
HMethod[] |
calls(HMethod hm)
Returns an array containing all possible methods called by method m. |
HMethod[] |
calls(HMethod hm,
CALL cs)
Returns an array containing all possible methods called by method m at the call site cs. |
CALL[] |
getCallSites(HMethod hm)
Returns a list of all the CALLs quads in the code
of hm. |
Set |
getRunMethods()
|
void |
load_caches()
|
| Methods inherited from class harpoon.Analysis.CallGraph |
|---|
getBiDiNavigator, getForwardNavigator, getRoots |
| Methods inherited from class jpaul.Graphs.DiGraph |
|---|
constructBiDiNavigator, dfs, dfs2, diGraph, diGraph, findPath, findPath, forAllVertices, getComponentDiGraph, numArcs, numVertices, reverseDiGraph, subDiGraph, toString, transitivePred, transitivePred, transitiveSucc, transitiveSucc, union, vertices |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public CachingCallGraph(CallGraph cg,
boolean m_cache,
boolean cs_cache)
CachingCallGraph that caches the results
of cg.
cg - underlying call graph (the one actually doing the job)m_cache - specifies whether to cache the results of
calls(HMethod hm)cs_cache - specifies whether to cache the results of
calls(HMethod hm, CALL cs)public CachingCallGraph(CallGraph cg)
cg is a
subclass of CallGraphImpl, it is equivalent to
CallGraphImpl(cg, false, true)
(CallGraphImpl already caches the callees of a method.
Otherwise, it is equivalent to
CallGraphImpl(cg, true, true) (full caching).
cg - underlying call graph| Method Detail |
|---|
public HMethod[] calls(HMethod hm)
CallGraphm. If hm doesn't call any
method, return an array of length 0.
calls in class CallGraph
public HMethod[] calls(HMethod hm,
CALL cs)
CallGraphm at the call site cs.
If there is no known callee for the call site cs, or if
cs doesn't belong to the code of hm,
return an array of length 0.
calls in class CallGraphpublic CALL[] getCallSites(HMethod hm)
CallGraphCALLs quads in the code
of hm.
getCallSites in class CallGraphpublic Set callableMethods()
CallGraph
callableMethods in class CallGraphpublic Set getRunMethods()
getRunMethods in class CallGraphrun() methods that may
be the bodies of a thread started by the program (optional operation).public void load_caches()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||