Progress on liveness analysis.

Compute basic blocks and their predecessors, necessary for backward flow
analysis.  This is a work in progress and isn't yet enabled.

(When enabled, verification takes 20% longer, so there's some room for
improvement on performance.)

Also, this changes the "generate register maps" setting to be enabled
by default, and allows a "no" prefix on -Xgenregmap to disable it.

Bug 2534655

Change-Id: Id2e8512f53fc454ce2184879ab663ed7121274b6
diff --git a/vm/Init.c b/vm/Init.c
index e1e7711..741799d 100644
--- a/vm/Init.c
+++ b/vm/Init.c
@@ -119,7 +119,7 @@
     dvmFprintf(stderr, "  -Xgc:[no]postverify\n");
     dvmFprintf(stderr, "  -Xgc:[no]concurrent\n");
     dvmFprintf(stderr, "  -Xgc:[no]verifycardtable\n");
-    dvmFprintf(stderr, "  -Xgenregmap\n");
+    dvmFprintf(stderr, "  -X[no]genregmap\n");
     dvmFprintf(stderr, "  -Xverifyopt:[no]checkmon\n");
     dvmFprintf(stderr, "  -Xcheckdexsum\n");
 #if defined(WITH_JIT)
@@ -983,7 +983,8 @@
 
         } else if (strcmp(argv[i], "-Xgenregmap") == 0) {
             gDvm.generateRegisterMaps = true;
-            LOGV("Register maps will be generated during verification\n");
+        } else if (strcmp(argv[i], "-Xnogenregmap") == 0) {
+            gDvm.generateRegisterMaps = false;
 
         } else if (strcmp(argv[i], "Xverifyopt:checkmon") == 0) {
             gDvm.monitorVerification = true;
@@ -1083,6 +1084,8 @@
     gDvm.classVerifyMode = VERIFY_MODE_ALL;
     gDvm.dexOptMode = OPTIMIZE_MODE_VERIFIED;
     gDvm.monitorVerification = false;
+    gDvm.generateRegisterMaps = true;
+    gDvm.registerMapMode = kRegisterMapModeTypePrecise;
 
     /*
      * Default execution mode.