}
if( !state.DISJOINT_USE_PREDICATES ) {
- ReachGraph.DISABLE_PREDICATES = true;
+ ReachGraph.DISABLE_PREDICATES = true;
+ ExistPredSet.DISABLE_PREDICATES = true;
}
if( state.DISJOINT_SUMMARIZE_PER_CLASS ) {
public class ExistPredSet extends Canonical {
+ protected static boolean DISABLE_PREDICATES = false;
+
protected Set<ExistPred> preds;
public static boolean debug = false;
Set<Integer> calleeReachableNodes,
Set<RefSrcNode> callerSrcMatches
) {
+ // jjenista 1/17/2012
+ //
+ // this does not work to disable predicates, in fact the whole
+ // interprocedural context mapping system is built on predicates
+ // because edges and nodes that get renamed in the callee context
+ // have to be spliced back into the caller context, and the
+ // elements that cross the boundry are fused by matching
+ // predicates of callee elements to caller elements.
+ //
+ //if( DISABLE_PREDICATES ) {
+ // return ReachGraph.predsTrue;
+ //}
+
ExistPredSet predsOut = null;
Iterator<ExistPred> predItr = preds.iterator();
AllocSite as = hrnCallee.getAllocSite();
allocSites.add(as);
-
+
Integer hrnIDshadow = as.getShadowIDfromID(hrnCallee.getID() );
HeapRegionNode hrnCaller = id2hrn.get(hrnIDshadow);
# EX: (skip first 10 visits, capture the next 3, then halt)
# -disjoint-debug-snap-method Remove 10 3 true
-DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) \
- -disjoint-summarize-per-class
+DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE)
+# -disjoint-disable-predicates \
+# -disjoint-summarize-per-class
# -disjoint-write-dots final
# -do-definite-reach-analysis \
# -disjoint-disable-global-sweep \
# -disjoint-disable-strong-update \
-# -disjoint-disable-predicates \
# -disjoint-debug-scheduling
# -disjoint-debug-callsite Barneshut.Insert Barneshut.run 50 500 true
# -disjoint-debug-snap-method ArrayIndexedGraph.createNode 1 100 true \