|
|||||||||
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 CALL s 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 graphMethod Detail |
---|
public HMethod[] calls(HMethod hm)
CallGraph
m
. If hm
doesn't call any
method, return an array of length 0
.
calls
in class CallGraph
public HMethod[] calls(HMethod hm, CALL cs)
CallGraph
m
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 CallGraph
public CALL[] getCallSites(HMethod hm)
CallGraph
CALL
s quads in the code
of hm
.
getCallSites
in class CallGraph
public Set callableMethods()
CallGraph
callableMethods
in class CallGraph
public Set getRunMethods()
getRunMethods
in class CallGraph
run()
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 |