Implement method parser and SSA transformation.

Change-Id: If3fb3a36f33aaee8e5fdded4e9fa607be54f0bfb
diff --git a/vm/compiler/CompilerUtility.h b/vm/compiler/CompilerUtility.h
index 551edb8..d3f2d6a 100644
--- a/vm/compiler/CompilerUtility.h
+++ b/vm/compiler/CompilerUtility.h
@@ -39,19 +39,39 @@
 typedef struct GrowableList {
     size_t numAllocated;
     size_t numUsed;
-    void **elemList;
+    intptr_t *elemList;
 } GrowableList;
 
+typedef struct GrowableListIterator {
+    GrowableList *list;
+    size_t idx;
+    size_t size;
+} GrowableListIterator;
+
 #define GET_ELEM_N(LIST, TYPE, N) (((TYPE*) LIST->elemList)[N])
 
+#define BLOCK_NAME_LEN 80
+
+/* Forward declarations */
 struct LIR;
+struct BasicBlock;
 
 void dvmInitGrowableList(GrowableList *gList, size_t initLength);
-void dvmInsertGrowableList(GrowableList *gList, void *elem);
+void dvmInsertGrowableList(GrowableList *gList, intptr_t elem);
+void dvmGrowableListIteratorInit(GrowableList *gList,
+                                 GrowableListIterator *iterator);
+intptr_t dvmGrowableListIteratorNext(GrowableListIterator *iterator);
+intptr_t dvmGrowableListGetElement(const GrowableList *gList, size_t idx);
+
 BitVector* dvmCompilerAllocBitVector(int startBits, bool expandable);
 bool dvmCompilerSetBit(BitVector* pBits, int num);
+bool dvmCompilerClearBit(BitVector* pBits, int num);
+void dvmCompilerMarkAllBits(BitVector *pBits, bool set);
 void dvmDebugBitVector(char *msg, const BitVector *bv, int length);
 void dvmDumpLIRInsn(struct LIR *lir, unsigned char *baseAddr);
 void dvmDumpResourceMask(struct LIR *lir, u8 mask, const char *prefix);
+void dvmDumpBlockBitVector(const GrowableList *blocks, char *msg,
+                           const BitVector *bv, int length);
+void dvmGetBlockName(struct BasicBlock *bb, char *name);
 
 #endif /* _DALVIK_COMPILER_UTILITY */