added dsmdebug file for debugging using macros and setting flags in buildscript
[IRC.git] / Robust / src / IR / Flat / BuildCode.java
index c59d216e79e27b1629d2521030f72a8dfc9b806e..8781ff4e3ca832db40545acb02f3d86ce2a20c59 100644 (file)
@@ -270,6 +270,10 @@ public class BuildCode {
     outmethod.println("printf(\"******  Transaction Stats   ******\\n\");");
     outmethod.println("printf(\"numTransAbort= %d\\n\", numTransAbort);");
     outmethod.println("printf(\"numTransCommit= %d\\n\", numTransCommit);");
+    outmethod.println("printf(\"nchashSearch= %d\\n\", nchashSearch);");
+    outmethod.println("printf(\"nmhashSearch= %d\\n\", nmhashSearch);");
+    outmethod.println("printf(\"nprehashSearch= %d\\n\", nprehashSearch);");
+    outmethod.println("printf(\"nRemoteReadSend= %d\\n\", nRemoteSend);");
     outmethod.println("#endif\n");
        outmethod.println("}");
 
@@ -315,8 +319,8 @@ public class BuildCode {
        outmethod.println("#include \"methodheaders.h\"");
        outmethod.println("#include \"virtualtable.h\"");
        outmethod.println("#include \"runtime.h\"");
-       outmethod.println("#include \"dstm.h\"");
        if (state.DSM) {
+           outmethod.println("#include \"addPrefetchEnhance.h\"");
            outmethod.println("#include \"localobjects.h\"");
        }
        if(state.MULTICORE) {
@@ -470,6 +474,7 @@ public class BuildCode {
        outtask.println("struct taskdescriptor {");
        outtask.println("void * taskptr;");
        outtask.println("int numParameters;");
+       outtask.println("  int numTotal;");
        outtask.println("struct parameterdescriptor **descriptorarray;");
        outtask.println("char * name;");
        outtask.println("};");
@@ -726,6 +731,10 @@ public class BuildCode {
       outclassdefs.print("#ifdef TRANSSTATS \n");
       outclassdefs.print("extern int numTransAbort;\n");
       outclassdefs.print("extern int numTransCommit;\n");
+      outclassdefs.print("extern int nchashSearch;\n");
+      outclassdefs.print("extern int nmhashSearch;\n");
+      outclassdefs.print("extern int nprehashSearch;\n");
+      outclassdefs.print("extern int nRemoteSend;\n");
       outclassdefs.print("extern void handle();\n");
       outclassdefs.print("#endif\n");
       outclassdefs.print("int numprefetchsites = " + pa.prefetchsiteid + ";\n");
@@ -1495,6 +1504,8 @@ public class BuildCode {
         output.println("/* prefetchid_" + fpn.siteid + " */");
            output.println("void * prefptr;");
            output.println("int tmpindex;");
+
+        output.println("if((evalPrefetch["+fpn.siteid+"].operMode) || (evalPrefetch["+fpn.siteid+"].retrycount <= 0)) {");
            /*Create C code for oid array */
            output.print("   unsigned int oidarray_[] = {");
            boolean needcomma=false;
@@ -1528,14 +1539,13 @@ public class BuildCode {
            }
            output.println("};");
            /* make the prefetch call to Runtime */
-        output.println("  if(evalPrefetch["+fpn.siteid+"].operMode) {");
-           output.println("    prefetch("+fpn.siteid+" ,"+tuplecount+", oidarray_, endoffsetarry_, fieldarry_);");
-           output.println("  } else if(evalPrefetch["+fpn.siteid+"].retrycount <= 0) {");
-           output.println("    prefetch("+fpn.siteid+" ,"+tuplecount+", oidarray_, endoffsetarry_, fieldarry_);");
-           output.println("    evalPrefetch["+fpn.siteid+"].retrycount = RETRYINTERVAL;");
-           output.println("  } else {");
-           output.println("    evalPrefetch["+fpn.siteid+"].retrycount--;");
-           output.println("  }");
+        output.println("   if(!evalPrefetch["+fpn.siteid+"].operMode) {"); 
+           output.println("     evalPrefetch["+fpn.siteid+"].retrycount = RETRYINTERVAL;");
+           output.println("   }");
+           output.println("   prefetch("+fpn.siteid+" ,"+tuplecount+", oidarray_, endoffsetarry_, fieldarry_);");
+           output.println(" } else {");
+           output.println("   evalPrefetch["+fpn.siteid+"].retrycount--;");
+           output.println(" }");
            output.println("}");
        }   
     }