OSDN Git Service

JIT: temporarily disable the JIT and concurrent GC on SMP systems
authorbuzbee <buzbee@google.com>
Thu, 29 Jul 2010 20:17:35 +0000 (13:17 -0700)
committerbuzbee <buzbee@google.com>
Thu, 29 Jul 2010 20:41:56 +0000 (13:41 -0700)
Change-Id: If2d489b2aca39cd0297453f311a5c3ce80f577d9

CleanSpec.mk
vm/Android.mk
vm/Init.c
vm/compiler/Dataflow.c

index 1db053d..7a8f4ce 100644 (file)
@@ -47,6 +47,7 @@
 $(call add-clean-step, rm -rf $(OUT)/obj/SHARED_LIBRARIES/libdvm*)
 $(call add-clean-step, rm -rf $(OUT)/obj/SHARED_LIBRARIES/libdvm*)
 $(call add-clean-step, rm -rf $(OUT)/obj/SHARED_LIBRARIES/libdvm*)
+$(call add-clean-step, rm -rf $(OUT)/obj/SHARED_LIBRARIES/libdvm*)
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
 # ************************************************
index be71d3c..d499442 100644 (file)
@@ -33,6 +33,8 @@ LOCAL_PATH:= $(call my-dir)
 #
 
 ifeq ($(TARGET_CPU_SMP),true)
+    # Temporary workaround
+    WITH_JIT := false
     target_smp_flag := -DANDROID_SMP=1
 else
     target_smp_flag := -DANDROID_SMP=0
index d73bec7..4616114 100644 (file)
--- a/vm/Init.c
+++ b/vm/Init.c
@@ -997,7 +997,8 @@ static int dvmProcessOptions(int argc, const char* const argv[],
             else if (strcmp(argv[i] + 5, "nopostverify") == 0)
                 gDvm.postVerify = false;
             else if (strcmp(argv[i] + 5, "concurrent") == 0)
-                gDvm.concurrentMarkSweep = true;
+                /* FIXME: temp workaround - disable */
+                gDvm.concurrentMarkSweep = false;
             else if (strcmp(argv[i] + 5, "noconcurrent") == 0)
                 gDvm.concurrentMarkSweep = false;
             else if (strcmp(argv[i] + 5, "verifycardtable") == 0)
@@ -1056,7 +1057,8 @@ static void setCommandLineDefaults()
     gDvm.heapSizeMax = 16 * 1024 * 1024;    // Spec says 75% physical mem
     gDvm.stackSize = kDefaultStackSize;
 
-    gDvm.concurrentMarkSweep = true;
+    /* FIXME: temp workaround - default to false */
+    gDvm.concurrentMarkSweep = false;
 
     /* gDvm.jdwpSuspend = true; */
 
index c5ec123..e68e174 100644 (file)
@@ -711,31 +711,31 @@ int dvmCompilerDataFlowAttributes[kMirOpLast] = {
     DF_DA | DF_UB,
 
     // E3 OP_IGET_VOLATILE
-    DF_NOP,
+    DF_DA | DF_UB,
 
     // E4 OP_IPUT_VOLATILE
-    DF_NOP,
+    DF_UA | DF_UB,
 
     // E5 OP_SGET_VOLATILE
-    DF_NOP,
+    DF_DA,
 
     // E6 OP_SPUT_VOLATILE
-    DF_NOP,
+    DF_UA,
 
     // E7 OP_IGET_OBJECT_VOLATILE
-    DF_NOP,
+    DF_DA | DF_UB,
 
     // E8 OP_IGET_WIDE_VOLATILE
-    DF_NOP,
+    DF_DA_WIDE | DF_UB,
 
     // E9 OP_IPUT_WIDE_VOLATILE
-    DF_NOP,
+    DF_UA_WIDE | DF_UB,
 
     // EA OP_SGET_WIDE_VOLATILE
-    DF_NOP,
+    DF_DA_WIDE,
 
     // EB OP_SPUT_WIDE_VOLATILE
-    DF_NOP,
+    DF_UA_WIDE,
 
     // EC OP_BREAKPOINT
     DF_NOP,
@@ -786,13 +786,13 @@ int dvmCompilerDataFlowAttributes[kMirOpLast] = {
     DF_FORMAT_3RC,
 
     // FC OP_IPUT_OBJECT_VOLATILE
-    DF_NOP,
+    DF_UA | DF_UB,
 
     // FD OP_SGET_OBJECT_VOLATILE
-    DF_NOP,
+    DF_DA,
 
     // FE OP_SPUT_OBJECT_VOLATILE
-    DF_NOP,
+    DF_UA,
 
     // FF OP_UNUSED_FF
     DF_NOP,