mapDescriptorToReachGraph =
new Hashtable<Descriptor, ReachGraph>();
- pm = new PointerMethod();
-
fc2enclosing = new Hashtable<FlatCall, Descriptor>();
}
ReachGraph.debugCallSiteVisitCounter
= 0; // count visits from 1, is incremented before first visit
+ pm = new PointerMethod();
+
if( state.DO_DEFINITE_REACH_ANALYSIS ) {
doDefiniteReachAnalysis = true;
- definiteReachAnalysis = new DefiniteReachAnalysis();
+ definiteReachAnalysis = new DefiniteReachAnalysis( pm );
}
fn2rgAtEnter.put(fn, rgOnEnter);
-
boolean didDefReachTransfer = false;
-
// use node type to decide what transfer function
// to apply to the reachability graph
switch( fn.kind() ) {
-
// dead variables were removed before the above transfer function
// was applied, so eliminate heap regions and edges that are no
// longer part of the abstractly-live heap graph, and sweep up