changes to fix alignment issues
authorbdemsky <bdemsky>
Tue, 14 Jul 2009 02:51:26 +0000 (02:51 +0000)
committerbdemsky <bdemsky>
Tue, 14 Jul 2009 02:51:26 +0000 (02:51 +0000)
Robust/src/Analysis/Prefetch/PrefetchAnalysis.java
Robust/src/Benchmarks/SingleTM/common/Makefile.flags
Robust/src/Benchmarks/SingleTM/common/Random.java
Robust/src/IR/ClassDescriptor.java
Robust/src/IR/Flat/BuildCode.java
Robust/src/IR/State.java
Robust/src/Main/Main.java
Robust/src/buildscript

index b7f9c6a2b5f49235a448b1c267dd5f9a3604b743..78a6faf2957751b63bffcc9b65c922a1e1d0cb5c 100644 (file)
@@ -109,6 +109,7 @@ public class PrefetchAnalysis {
       case FKind.FlatFlagActionNode:
       case FKind.FlatGlobalConvNode:
       case FKind.FlatNop:
+      case FKind.FlatExit:
       case FKind.FlatNew:
       case FKind.FlatCastNode:
       case FKind.FlatTagDeclaration:
index f99d940e5794e5d3bfd3215ccc0aaa806751f514..c7b788494e392905677253dd7730efcdf0f608db 100644 (file)
@@ -1,6 +1,6 @@
-FLAGSLOCK=-mainclass ${MAINCLASS} -thread -optimize -abcclose -64bit -debug -joptimize
-FLAGSLOCKNOJ=-mainclass ${MAINCLASS} -thread -optimize -abcclose -64bit -debug
-FLAGSSTMNOJ=-mainclass ${MAINCLASS} -singleTM -optimize -64bit -debug -abcclose -transstats
-FLAGSSTM=-mainclass ${MAINCLASS} -singleTM -optimize -joptimize -64bit -debug -abcclose -transstats
-FLAGSOPTSTM=-mainclass ${MAINCLASS} -singleTM -optimize -joptimize -64bit -debug -abcclose -dcopts -transstats
-FLAGSFISSION=-mainclass ${MAINCLASS} -singleTM -delaycomp -optimize -joptimize -abcclose -64bit -debug -transstats -inlineatomic 2 -minimize
\ No newline at end of file
+FLAGSLOCK=-mainclass ${MAINCLASS} -thread -optimize -abcclose -64bit -debug -joptimize -arraypad
+FLAGSLOCKNOJ=-mainclass ${MAINCLASS} -thread -optimize -abcclose -64bit -debug -arraypad
+FLAGSSTMNOJ=-mainclass ${MAINCLASS} -singleTM -optimize -64bit -debug -abcclose -transstats -arraypad
+FLAGSSTM=-mainclass ${MAINCLASS} -singleTM -optimize -joptimize -64bit -debug -abcclose -transstats -arraypad
+FLAGSOPTSTM=-mainclass ${MAINCLASS} -singleTM -optimize -joptimize -64bit -debug -abcclose -dcopts -transstats -arraypad
+FLAGSFISSION=-mainclass ${MAINCLASS} -singleTM -delaycomp -optimize -joptimize -abcclose -64bit -debug -transstats -inlineatomic 2 -minimize -readset -arraypad
index 611592b2bf30ab7978cb1b538401b447c226a0eb..36ee5e8e9ea329aed487729f638522943dca9554 100644 (file)
@@ -53,11 +53,7 @@ public class Random {
   }
 
   public int posrandom_generate() {
-    int r=genrand_int32();
-    if (r>0)
-      return r;
-    else 
-      return -r;
+    return 0x7fffffff&genrand_int32();
   }
 
   public int genrand_int32() {
index e38a12f6bba121151b9ca3365aa2d362a57b1d42..d86e115cddcaf9e8b786548c0720488797de665b 100644 (file)
@@ -13,6 +13,7 @@ public class ClassDescriptor extends Descriptor {
   Modifiers modifiers;
 
   SymbolTable fields;
+  Vector fieldvec;
   SymbolTable flags;
   SymbolTable methods;
 
@@ -25,6 +26,7 @@ public class ClassDescriptor extends Descriptor {
     superclass=null;
     flags=new SymbolTable();
     fields=new SymbolTable();
+    fieldvec=new Vector();
     methods=new SymbolTable();
     classid=UIDCount++;
     this.packagename=packagename;
@@ -50,6 +52,10 @@ public class ClassDescriptor extends Descriptor {
     return fields;
   }
 
+  public Vector getFieldVec() {
+    return fieldvec;
+  }
+
   public SymbolTable getFlagTable() {
     return flags;
   }
@@ -114,6 +120,7 @@ public class ClassDescriptor extends Descriptor {
     if (fields.contains(fd.getSymbol()))
       throw new Error(fd.getSymbol()+" already defined");
     fields.add(fd);
+    fieldvec.add(fd);
   }
 
   public void addMethod(MethodDescriptor md) {
index 08828226c55065f44ac4a3086def4806ef23fd21..e3d6bf1fc283d2de906618687e4928f5bcae25a3 100644 (file)
@@ -586,6 +586,9 @@ public class BuildCode {
     }
     printClassStruct(typeutil.getClass(TypeUtil.ObjectClass), outclassdefs);
 
+    if (state.ARRAYPAD)
+      outclassdefs.println("  int paddingforarray;");
+
     outclassdefs.println("  int ___length___;");
     outclassdefs.println("};\n");
     outclassdefs.println("extern int classsize[];");
@@ -1208,21 +1211,10 @@ public class BuildCode {
     if (!fieldorder.containsKey(cn)) {
       Vector fields=new Vector();
       fieldorder.put(cn,fields);
-      if (sp==null&&!state.TASK) {
-       fields.add(cn.getFieldTable().get("cachedCode"));
-      }
-      Iterator fieldit=cn.getFields();
-      while(fieldit.hasNext()) {
-       FieldDescriptor fd=(FieldDescriptor)fieldit.next();
-       if ((sp==null||!sp.getFieldTable().contains(fd.getSymbol()))&&!fd.getType().isPtr()&&
-           (!fd.getSymbol().equals("cachedCode")||state.TASK))
-         fields.add(fd);
-      }
-      fieldit=cn.getFields();
-      while(fieldit.hasNext()) {
-       FieldDescriptor fd=(FieldDescriptor)fieldit.next();
-       if ((sp==null||!sp.getFieldTable().contains(fd.getSymbol()))&&fd.getType().isPtr()&&
-           (!fd.getSymbol().equals("cachedCode")||state.TASK))
+      Vector fieldvec=cn.getFieldVec();
+      for(int i=0;i<fieldvec.size();i++) {
+       FieldDescriptor fd=(FieldDescriptor)fieldvec.get(i);
+       if ((sp==null||!sp.getFieldTable().contains(fd.getSymbol())))
          fields.add(fd);
       }
     }
index 5ac95d1897d644f48a2e6d059ea076b2ba095d35..92eddf90480da13a8fa4fcf9ada91f4aed7811d8 100644 (file)
@@ -68,6 +68,7 @@ public class State {
   public boolean OPTIONAL=false;
   public boolean ARRAYBOUNDARYCHECK=true;
   public boolean RAW=false;
+  public boolean ARRAYPAD=false;
   public boolean SCHEDULING=false;
   public boolean USEPROFILE=false;
   public boolean THREAD=false;
index 5f18a514308643381f87bd0f589f0a31bb445271..6d8be64a21ab8af04711c8e9b152c2c6a38feb57 100644 (file)
@@ -141,6 +141,8 @@ public class Main {
        state.OPTIMIZE=true;
       else if (option.equals("-dcopts"))
        state.DCOPTS=true;
+      else if (option.equals("-arraypad"))
+       state.ARRAYPAD=true;
       else if (option.equals("-delaycomp"))
        state.DELAYCOMP=true;
       else if (option.equals("-raw"))
index 193a09b24db695fa5df69499e114a94f848de0ce..444bc73b1b05940756c23a59c45755301b1d7ebc 100755 (executable)
@@ -163,6 +163,9 @@ elif [[ $1 = '-excprefetch' ]]
 then
 JAVAOPTS="$JAVAOPTS -excprefetch $2"
 shift
+elif [[ $1 = '-arraypad' ]]
+then
+JAVAOPTS="$JAVAOPTS -arraypad"
 elif [[ $1 = '-dsm' ]]
 then
 JAVAOPTS="$JAVAOPTS -dsm"