import Analysis.Locality.DelayComputation;
import Analysis.Locality.BranchAnalysis;
import Analysis.CallGraph.CallGraph;
+import Analysis.Disjoint.Effect;
+import Analysis.Disjoint.ReachGraph;
+import Analysis.Disjoint.Taint;
import Analysis.OoOJava.OoOJavaAnalysis;
import Analysis.Prefetch.*;
import Analysis.Loops.WriteBarrier;
while(seseit.hasNext()){
FlatSESEEnterNode fsen = seseit.next();
initializeSESE( fsen );
+
+ /*
+ if(state.RCR){
+ if(!fsen.getIsCallerSESEplaceholder() && fsen.getParent()!=null){
+
+ FlatMethod fm=fsen.getfmEnclosing();
+
+ //reach graph
+ ReachGraph rg=oooa.getDisjointAnalysis().getReachGraph(fm.getMethod());
+
+ //get effect set
+ Hashtable<Taint, Set<Effect>> effects=oooa.getDisjointAnalysis().getEffectsAnalysis().get(fsen);
+
+ //get conflict set
+ Analysis.OoOJava.ConflictGraph conflictGraph=oooa.getConflictGraph(fsen.getParent());
+ Hashtable<Taint, Set<Effect>> conflicts=conflictGraph.getConflictEffectSet(fsen);
+ }
+ }
+ */
}
}
if (state.MLP || state.OOOJAVA) {
//outmethod.println(" pthread_once( &mlpOnceObj, mlpInitOncePerThread );");
+
outmethod.println(" workScheduleInit( "+state.MLP_NUMCORES+", invokeSESEmethod );");
}
outmethod.println("#include \"mlp_runtime.h\"");
outmethod.println("#include \"psemaphore.h\"");
}
-
+ if (state.COREPROF) {
+ outmethod.println("#include \"coreprof\\coreprof.h\"");
+ }
//Store the sizes of classes & array elements
generateSizeArray(outmethod);
(state.OOOJAVA && fsen.equals( oooa.getMainSESE() ))
) {
outmethod.println( " /* work scheduler works forever, explicitly exit */");
+ if (state.COREPROF) {
+ outmethod.println("EXITPROFILER();");
+ outmethod.println("DUMPPROFILER();");
+ }
outmethod.println( " exit( 0 );");
}