From a5abf7091711eed1e9f1d0e1538fe9963ebdf31c Mon Sep 17 00:00:00 2001 From: buzbee Date: Fri, 12 Apr 2013 14:39:29 -0700 Subject: 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 --- src/compiler/dex/compiler_enums.h | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/compiler/dex/compiler_enums.h') diff --git a/src/compiler/dex/compiler_enums.h b/src/compiler/dex/compiler_enums.h index 71d7d6563d..bc456b2e70 100644 --- a/src/compiler/dex/compiler_enums.h +++ b/src/compiler/dex/compiler_enums.h @@ -387,7 +387,30 @@ enum SelectInstructionKind { kSelectGoto }; -std::ostream& operator<<(std::ostream& os, const OpFeatureFlags& flag); +std::ostream& operator<<(std::ostream& os, const SelectInstructionKind& kind); + +// Type of growable bitmap for memory tuning. +enum OatBitMapKind { + kBitMapMisc = 0, + kBitMapUse, + kBitMapDef, + kBitMapLiveIn, + kBitMapBMatrix, + kBitMapDominators, + kBitMapIDominated, + kBitMapDomFrontier, + kBitMapPhi, + kBitMapTmpBlocks, + kBitMapInputBlocks, + kBitMapRegisterV, + kBitMapTempSSARegisterV, + kBitMapNullCheck, + kBitMapTmpBlockV, + kBitMapPredecessors, + kNumBitMapKinds +}; + +std::ostream& operator<<(std::ostream& os, const OatBitMapKind& kind); } // namespace art -- cgit v1.2.3-59-g8ed1b