Compiler: replace DOM traversal computation
Originally the old trace JIT used a few recursive graph walking
algorithms - which was perfectly reasonable given that the graph
size was capped at a few dozen nodes at most. These were replaced
with iterative walk order computations - or at least I thought
they all were. Missed one of them, which caused a stack overflow
on a pathologically large method compilation.
Renaming of some arena_allocator items for consistency and clarity.
More detailed memory usage logging. Reworked the allocator to waste
less space when an allocation doesn't fit and a new block must be
allocated.
Change-Id: I4d84dded3c47819eefa0de90ebb821dd12eb8be8
diff --git a/src/compiler/dex/mir_graph.h b/src/compiler/dex/mir_graph.h
index fd81967..882a508 100644
--- a/src/compiler/dex/mir_graph.h
+++ b/src/compiler/dex/mir_graph.h
@@ -592,7 +592,7 @@
void DataFlowSSAFormat35C(MIR* mir);
void DataFlowSSAFormat3RC(MIR* mir);
bool FindLocalLiveIn(BasicBlock* bb);
- bool ClearVisitedFlag(struct BasicBlock* bb);
+ void ClearAllVisitedFlags();
bool CountUses(struct BasicBlock* bb);
bool InferTypeAndSize(BasicBlock* bb);
bool VerifyPredInfo(BasicBlock* bb);
@@ -621,7 +621,7 @@
bool ComputeBlockLiveIns(BasicBlock* bb);
bool InsertPhiNodeOperands(BasicBlock* bb);
bool ComputeDominanceFrontier(BasicBlock* bb);
- bool DoConstantPropogation(BasicBlock* bb);
+ void DoConstantPropogation(BasicBlock* bb);
void CountChecks(BasicBlock* bb);
bool CombineBlocks(BasicBlock* bb);