Store the key value with switch and catch blocks.

For switch blocks, the key is the enum value with the case.
For catch blocks, the key is the type id of the exception.

Change-Id: I66a7e31c917aba63a0b455ce1796e3d5e277ca5a
diff --git a/vm/compiler/MethodSSATransformation.c b/vm/compiler/MethodSSATransformation.c
index fc56891..48d5b5c 100644
--- a/vm/compiler/MethodSSATransformation.c
+++ b/vm/compiler/MethodSSATransformation.c
@@ -36,9 +36,10 @@
         dvmGrowableListIteratorInit(&block->successorBlockList.blocks,
                                     &iterator);
         while (true) {
-            BasicBlock *succBB =
-                (BasicBlock *) dvmGrowableListIteratorNext(&iterator);
-            if (succBB == NULL) break;
+            SuccessorBlockInfo *successorBlockInfo =
+                (SuccessorBlockInfo *) dvmGrowableListIteratorNext(&iterator);
+            if (successorBlockInfo == NULL) break;
+            BasicBlock *succBB = successorBlockInfo->block;
             recordDFSPreOrder(cUnit, succBB);
         }
     }
@@ -154,9 +155,10 @@
         dvmGrowableListIteratorInit(&bb->successorBlockList.blocks,
                                     &iterator);
         while (true) {
-            BasicBlock *succBB =
-                (BasicBlock *) dvmGrowableListIteratorNext(&iterator);
-            if (succBB == NULL) break;
+            SuccessorBlockInfo *successorBlockInfo =
+                (SuccessorBlockInfo *) dvmGrowableListIteratorNext(&iterator);
+            if (successorBlockInfo == NULL) break;
+            BasicBlock *succBB = successorBlockInfo->block;
             if (!dvmIsBitSet(succBB->dominators, bb->id)) {
                 dvmSetBit(bb->domFrontier, succBB->id);
             }
@@ -373,9 +375,10 @@
         dvmGrowableListIteratorInit(&bb->successorBlockList.blocks,
                                     &iterator);
         while (true) {
-            BasicBlock *succBB =
-                (BasicBlock *) dvmGrowableListIteratorNext(&iterator);
-            if (succBB == NULL) break;
+            SuccessorBlockInfo *successorBlockInfo =
+                (SuccessorBlockInfo *) dvmGrowableListIteratorNext(&iterator);
+            if (successorBlockInfo == NULL) break;
+            BasicBlock *succBB = successorBlockInfo->block;
             if (succBB->dataFlowInfo) {
                 computeSuccLiveIn(tempDalvikRegisterV,
                                   succBB->dataFlowInfo->liveInV,