summaryrefslogtreecommitdiff
path: root/src/compiler/CompilerIR.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/CompilerIR.h')
-rw-r--r--src/compiler/CompilerIR.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/compiler/CompilerIR.h b/src/compiler/CompilerIR.h
index f981ccd167..317924b31e 100644
--- a/src/compiler/CompilerIR.h
+++ b/src/compiler/CompilerIR.h
@@ -147,6 +147,7 @@ typedef enum BlockListType {
typedef struct BasicBlock {
int id;
+ int dfsId;
bool visited;
bool hidden;
bool catchEntry;
@@ -191,6 +192,8 @@ typedef enum AssemblerStatus {
kRetryHalve
} AssemblerStatus;
+#define NOTVISITED (-1)
+
typedef struct CompilationUnit {
int numInsts;
int numBlocks;
@@ -265,9 +268,11 @@ typedef struct CompilationUnit {
BasicBlock* curBlock;
BasicBlock* nextCodegenBlock; // for extended trace codegen
GrowableList dfsOrder;
+ GrowableList dfsPostOrder;
GrowableList domPostOrderTraversal;
GrowableList throwLaunchpads;
GrowableList suspendLaunchpads;
+ int* iDomList;
ArenaBitVector* tryBlockAddr;
ArenaBitVector** defBlockMatrix; // numDalvikRegister x numBlocks
ArenaBitVector* tempBlockV;
@@ -310,6 +315,7 @@ typedef struct CompilationUnit {
GrowableList fillArrayData;
const u2* insns;
u4 insnsSize;
+ std::map<unsigned int, BasicBlock*> blockMap; // findBlock lookup cache
} CompilationUnit;
BasicBlock* oatNewBB(BBType blockType, int blockId);