bug fixes.
authorbdemsky <bdemsky>
Thu, 16 Apr 2009 07:31:22 +0000 (07:31 +0000)
committerbdemsky <bdemsky>
Thu, 16 Apr 2009 07:31:22 +0000 (07:31 +0000)
Robust/src/IR/Flat/BuildCode.java
Robust/src/Runtime/STM/stm.c
Robust/src/Runtime/runtime.c

index 91398dc4fb34f056a000b6a2a1b59e5f7e3fbb83..b0e619034e1b9e9885c0b6b021db3809b9c27a1e 100644 (file)
@@ -1299,7 +1299,11 @@ public class BuildCode {
     }
 
     /********* Output method declaration ***********/
-
+    if (state.DSM||state.SINGLETM) {
+      headersout.println("#define D"+cn.getSafeSymbol()+lb.getSignature()+md.getSafeSymbol()+"_"+md.getSafeMethodDescriptor()+" 1");
+    } else {
+      headersout.println("#define D"+cn.getSafeSymbol()+md.getSafeSymbol()+"_"+md.getSafeMethodDescriptor()+" 1");
+    }
     /* First the return type */
     if (md.getReturnType()!=null) {
       if (md.getReturnType().isClass()||md.getReturnType().isArray())
@@ -1313,9 +1317,9 @@ public class BuildCode {
     /* Next the method name */
     if (state.DSM||state.SINGLETM) {
       headersout.print(cn.getSafeSymbol()+lb.getSignature()+md.getSafeSymbol()+"_"+md.getSafeMethodDescriptor()+"(");
-    } else
+    } else {
       headersout.print(cn.getSafeSymbol()+md.getSafeSymbol()+"_"+md.getSafeMethodDescriptor()+"(");
-
+    }
     boolean printcomma=false;
     if (GENERATEPRECISEGC) {
       if (state.DSM||state.SINGLETM) {
@@ -1452,7 +1456,7 @@ public class BuildCode {
       if (state.DSM&&lb.isAtomic())
        output.println("if (needtocollect) checkcollect2(&"+localsprefix+");");
       else
-       output.println("if (needtocollect) checkcollect(&"+localsprefix+");");
+      output.println("if (needtocollect) checkcollect(&"+localsprefix+");");
     }
 
     generateCode( fm.getNext(0), fm, lb, null, output );
@@ -1702,7 +1706,7 @@ public class BuildCode {
        if(state.DSM&&locality.getAtomic(lb).get(fn).intValue()>0) {
          output.println("if (needtocollect) checkcollect2(&"+localsprefix+");");
        } else
-         output.println("if (needtocollect) checkcollect(&"+localsprefix+");");
+       output.println("if (needtocollect) checkcollect(&"+localsprefix+");");
       } else
        output.println("/* nop */");
       return;
index 658356aad5997e1cc79b8e02ca08e8e2dbb1131f..6543380c09741c962fdc04bf0387b1f97ab379d7 100644 (file)
@@ -222,9 +222,7 @@ void freenewobjs() {
  * ================================================================
  */
 int transCommit() {
-#ifdef TRANSSTATS
   int softaborted=0;
-#endif
   do {
     /* Look through all the objects in the transaction hash table */
     int finalResponse;
@@ -260,8 +258,8 @@ int transCommit() {
     if(finalResponse == TRANS_SOFT_ABORT) {
 #ifdef TRANSSTATS
       nSoftAbort++;
-      softaborted++;
 #endif
+      softaborted++;
       if (softaborted>4) {
        //retry if to many soft aborts
        freenewobjs();
@@ -367,11 +365,11 @@ int traverseCache() {
   /* Decide the final response */
   if (softabort) {
     transAbortProcess(oidrdlocked, &numoidrdlocked, oidwrlocked, &numoidwrlocked);
-    DEBUGSTM("Softabort\n");
+    DEBUGSTM("Soft Abort: rd: %u wr: %u tot: %u\n", numoidrdlocked, numoidwrlocked, c_numelements);
     return TRANS_SOFT_ABORT;
   } else {
     transCommitProcess(oidrdlocked, &numoidrdlocked, oidwrlocked, &numoidwrlocked);
-    DEBUGSTM("Commit\n");
+    DEBUGSTM("Commit: rd: %u wr: %u tot: %u\n", numoidrdlocked, numoidwrlocked, c_numelements);
     return TRANS_COMMIT;
   }
 }
@@ -459,11 +457,11 @@ int alttraverseCache() {
   /* Decide the final response */
   if (softabort) {
     transAbortProcess(oidrdlocked, &numoidrdlocked, oidwrlocked, &numoidwrlocked);
-    DEBUGSTM("Softabort\n");
+    DEBUGSTM("Soft Abort: rd: %u wr: %u tot: %u\n", numoidrdlocked, numoidwrlocked, c_numelements);
     return TRANS_SOFT_ABORT;
   } else {
     transCommitProcess(oidrdlocked, &numoidrdlocked, oidwrlocked, &numoidwrlocked);
-    DEBUGSTM("Commit\n");
+    DEBUGSTM("Commit: rd: %u wr: %u tot: %u\n", numoidrdlocked, numoidwrlocked, c_numelements);
     return TRANS_COMMIT;
   }
 }
index 23a0aaa5d41c71edf6c46211d37f27ff0d96a96c..0d6c2c3f3b1736f3299ec47a94a813c84db94574 100644 (file)
@@ -113,12 +113,13 @@ void CALL11(___System______exit____I,int ___status___, int ___status___) {
   exit(___status___);
 }
 
+#ifdef D___Vector______removeElement_____AR_L___Object____I
 void CALL12(___Vector______removeElement_____AR_L___Object____I, int ___index___, struct ArrayObject * ___array___, int ___index___) {
   int length=VAR(___array___)->___length___;
   char* offset=((char *)(&VAR(___array___)->___length___))+sizeof(unsigned int)+sizeof(void *)*___index___;
   memmove(offset, offset+sizeof(void *),(length-___index___-1)*sizeof(void *));
 }
-
+#endif
 
 void CALL11(___System______printI____I,int ___status___, int ___status___) {
   printf("%d\n",___status___);