special loop optimization disable for ooojava
authorjjenista <jjenista>
Sat, 31 Jul 2010 00:28:23 +0000 (00:28 +0000)
committerjjenista <jjenista>
Sat, 31 Jul 2010 00:28:23 +0000 (00:28 +0000)
Robust/src/IR/State.java
Robust/src/Main/Main.java
Robust/src/buildscript

index bdfb0ec0d7d314adb5c350549f9617bbaa92db9b..2dde82764fd1a0da8e8b008ff490ecfaffeccab8 100644 (file)
@@ -105,6 +105,7 @@ public class State {
 
 
   public boolean OPTIONAL=false;
+  public boolean NOLOOP=false;
   public boolean ARRAYPAD=false;
   public boolean THREAD=false;
   public boolean CONSCHECK=false;
index d81a1ee3fa8cf157f3d221c8ac7a18deee2155f3..047f6de77059dfb555975dd202fd1698cfd4cfa3 100644 (file)
@@ -270,6 +270,8 @@ public class Main {
        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"))
@@ -356,6 +358,7 @@ public class Main {
        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");
@@ -392,6 +395,7 @@ public class Main {
     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");
@@ -407,6 +411,7 @@ public class Main {
       sc.getClass("Thread");
     }
 
+
     sc.semanticCheck();
 
     tu.createFullTable();
@@ -439,7 +444,9 @@ public class Main {
       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();
@@ -450,7 +457,8 @@ public class Main {
           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);
index d59685547bd7766ed0ae01b72d10a2486495a6e5..3c3d90a4bcd3e6deaebd06c0c5a0f48edffd67a6 100755 (executable)
@@ -66,6 +66,7 @@ echo -dmalloc link in dmalloc
 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
@@ -453,6 +454,9 @@ JAVAOPTS="$JAVAOPTS -instructionfailures"
 elif [[ $1 = '-joptimize' ]]
 then
 JAVAOPTS="$JAVAOPTS -optimize"
+elif [[ $1 = '-noloop' ]]
+then
+JAVAOPTS="$JAVAOPTS -noloop"
 elif [[ $1 = '-dcopts' ]]
 then
 JAVAOPTS="$JAVAOPTS -dcopts"