return effectsAnalysis;
}
+ public ReachGraph getReachGraph(Descriptor d){
+ return mapDescriptorToCompleteReachGraph.get(d);
+ }
+
// get successive captures of the analysis state, use compiler
// flags to control
}
}
}
+
+ public DisjointAnalysis getDisjointAnalysis(){
+ return disjointAnalysisReach;
+ }
private void printSESEInfoTree( BufferedWriter bw,
FlatSESEEnterNode fsen
import Analysis.Locality.DelayComputation;
import Analysis.Locality.BranchAnalysis;
import Analysis.CallGraph.CallGraph;
+import Analysis.Disjoint.ReachGraph;
import Analysis.OoOJava.OoOJavaAnalysis;
import Analysis.Prefetch.*;
import Analysis.Loops.WriteBarrier;
while(seseit.hasNext()){
FlatSESEEnterNode fsen = seseit.next();
initializeSESE( fsen );
+
+ // invoke rcr
+ if(state.RCR){
+// FlatMethod fm=fsen.getfmEnclosing();
+// ReachGraph rg=oooa.getDisjointAnalysis().getReachGraph(fm.getMethod());
+ }
+
}
}
public boolean OOOJAVA=false;
public boolean OOODEBUG=false;
+ public boolean RCR=false;
public boolean OPTIONAL=false;
} else if (option.equals("-ooodebug") ){
state.OOODEBUG = true;
+ } else if (option.equals("-rcr")){
+ state.RCR = true;
} else if (option.equals("-help")) {
System.out.println("-classlibrary classlibrarydirectory -- directory where classlibrary is located");
System.out.println("-selfloop task -- this task doesn't self loop its parameters forever");
echo -coreprof turn on profiling API
echo "-ooojava <numberofcores> <maxseseage>"
echo -ooodebug general OOOJava debugging messages
+echo -rcr turn on runtime conflict resolver
echo
echo Disjoint Reachability Analysis options
echo -disjoint enable analysis
shift
shift
+elif [[ $1 = '-rcr' ]]
+then
+JAVAOPTS="$JAVAOPTS -rcr"
+
elif [[ $1 = '-coreprof' ]]
then
COREPROF=true