diff options
| author | 2013-04-12 14:39:29 -0700 | |
|---|---|---|
| committer | 2013-05-13 12:34:28 -0700 | |
| commit | a5abf7091711eed1e9f1d0e1538fe9963ebdf31c (patch) | |
| tree | e256df83ca632744d144854403a326d90cb683a7 /src/compiler/dex/mir_graph.h | |
| parent | bf47e5f28b1aa39748dce8ac5abbabca1baee093 (diff) | |
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
Diffstat (limited to 'src/compiler/dex/mir_graph.h')
| -rw-r--r-- | src/compiler/dex/mir_graph.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/dex/mir_graph.h b/src/compiler/dex/mir_graph.h index fd81967579..882a5088d7 100644 --- a/src/compiler/dex/mir_graph.h +++ b/src/compiler/dex/mir_graph.h @@ -592,7 +592,7 @@ class MIRGraph { 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 @@ class MIRGraph { 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); |