summaryrefslogtreecommitdiff
path: root/src/compiler/CompilerIR.h
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2012-09-09 14:41:03 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-09-09 14:41:03 -0700
commit1a0806c6847a9dc5cc6d73460d7e8ad3183b5c49 (patch)
tree380a8b0796e3ee94072457013de1ad8e94e9a287 /src/compiler/CompilerIR.h
parent324e190e9de0d81d39d88474e189acef9b10bcc8 (diff)
parentd1643e41ef242ae656f667bf3c8b0324635cefd3 (diff)
Merge "Basic block combine pass" into dalvik-dev
Diffstat (limited to 'src/compiler/CompilerIR.h')
-rw-r--r--src/compiler/CompilerIR.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/compiler/CompilerIR.h b/src/compiler/CompilerIR.h
index 02c7621f77..1cbf2b5f19 100644
--- a/src/compiler/CompilerIR.h
+++ b/src/compiler/CompilerIR.h
@@ -160,6 +160,7 @@ enum BBType {
kExitBlock,
kExceptionHandling,
kCatchEntry,
+ kDead,
};
/* Utility macros to traverse the LIR list */
@@ -239,6 +240,13 @@ struct CallsiteInfo {
LIR* misPredBranchOver;
};
+struct Checkstats {
+ int nullChecks;
+ int nullChecksEliminated;
+ int rangeChecks;
+ int rangeChecksEliminated;
+};
+
struct MIR {
DecodedInstruction dalvikInsn;
unsigned int width;
@@ -272,7 +280,6 @@ struct BasicBlock {
bool visited;
bool hidden;
bool catchEntry;
- bool fallThroughTarget; // Reached via fallthrough
#if defined(ART_USE_QUICK_COMPILER)
bool hasReturn;
#endif
@@ -412,6 +419,7 @@ struct CompilationUnit {
currentArena(NULL),
numArenaBlocks(0),
mstats(NULL),
+ checkstats(NULL),
#if defined(ART_USE_QUICK_COMPILER)
genBitcode(false),
context(NULL),
@@ -571,6 +579,7 @@ struct CompilationUnit {
u4 insnsSize;
bool disableDataflow; // Skip dataflow analysis if possible
SafeMap<unsigned int, BasicBlock*> blockMap; // findBlock lookup cache
+ SafeMap<unsigned int, unsigned int> blockIdMap; // Block collapse lookup cache
SafeMap<unsigned int, LIR*> boundaryMap; // boundary lookup cache
int defCount; // Used to estimate number of SSA names
@@ -582,6 +591,7 @@ struct CompilationUnit {
ArenaMemBlock* currentArena;
int numArenaBlocks;
Memstats* mstats;
+ Checkstats* checkstats;
#if defined(ART_USE_QUICK_COMPILER)
bool genBitcode;
llvm::LLVMContext* context;