state.OPTIONAL=true;
else if (option.equals("-optimize"))
state.OPTIMIZE=true;
+ else if (option.equals("-noloop"))
+ state.NOLOOP=true;
else if (option.equals("-dcopts"))
state.DCOPTS=true;
else if (option.equals("-arraypad"))
System.out.println("-ownwritedots <all/final> -- write ownership graphs; can be all results or just final results");
System.out.println("-ownaliasfile <filename> -- write a text file showing all detected aliases in program tasks");
System.out.println("-optimize -- enable optimizations");
+ System.out.println("-noloop -- disable loop optimizations");
System.out.println("-optional -- enable optional arguments");
System.out.println("-abcclose close the array boundary check");
System.out.println("-scheduling do task scheduling");
for(int i=0;i<sourcefiles.size();i++)
loadClass(state, bir,(String)sourcefiles.get(i));
+
//Stuff the runtime wants to see
sc.getClass("String");
sc.getClass("Math");
sc.getClass("Thread");
}
+
sc.semanticCheck();
tu.createFullTable();
GlobalFieldType gft=new GlobalFieldType(callgraph, state, tu.getMain());
CSE cse=new CSE(gft, tu);
localCSE lcse=new localCSE(gft, tu);
- LoopOptimize lo=new LoopOptimize(gft, tu);
+ LoopOptimize lo=null;
+ if (!state.NOLOOP)
+ lo=new LoopOptimize(gft, tu);
Iterator classit=state.getClassSymbolTable().getDescriptorsIterator();
while(classit.hasNext()) {
ClassDescriptor cn=(ClassDescriptor)classit.next();
FlatMethod fm=state.getMethodFlat(md);
cp.optimize(fm);
dc.optimize(fm);
- lo.optimize(fm);
+ if (!state.NOLOOP)
+ lo.optimize(fm);
cp.optimize(fm);
dc.optimize(fm);
lcse.doAnalysis(fm);
echo -64bit compile for 64 bit machine
echo -32bit compile for 32 bit machine
echo -joptimize java compiler optimizations
+echo -noloop turnoff loop optimizations
echo -recover compile task code
echo -fastcheck fast checkpointing for Bristlecone
echo -specdir directory
elif [[ $1 = '-joptimize' ]]
then
JAVAOPTS="$JAVAOPTS -optimize"
+elif [[ $1 = '-noloop' ]]
+then
+JAVAOPTS="$JAVAOPTS -noloop"
elif [[ $1 = '-dcopts' ]]
then
JAVAOPTS="$JAVAOPTS -dcopts"