From 2aaa4b5532d30c4e65d8892b556400bb61f9dc8c Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Thu, 17 Sep 2015 17:03:26 +0100 Subject: Optimizing: Tag more arena allocations. Replace GrowableArray with ArenaVector and tag arena allocations with new allocation types. As part of this, make the register allocator a bit more efficient, doing bulk insert/erase. Some loops are now O(n) instead of O(n^2). Change-Id: Ifac0871ffb34b121cc0447801a2d07eefd308c14 --- compiler/optimizing/ssa_phi_elimination.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'compiler/optimizing/ssa_phi_elimination.h') diff --git a/compiler/optimizing/ssa_phi_elimination.h b/compiler/optimizing/ssa_phi_elimination.h index 67351f277b..b48e8200d5 100644 --- a/compiler/optimizing/ssa_phi_elimination.h +++ b/compiler/optimizing/ssa_phi_elimination.h @@ -17,6 +17,7 @@ #ifndef ART_COMPILER_OPTIMIZING_SSA_PHI_ELIMINATION_H_ #define ART_COMPILER_OPTIMIZING_SSA_PHI_ELIMINATION_H_ +#include "base/arena_containers.h" #include "nodes.h" #include "optimization.h" @@ -30,7 +31,9 @@ class SsaDeadPhiElimination : public HOptimization { public: explicit SsaDeadPhiElimination(HGraph* graph) : HOptimization(graph, kSsaDeadPhiEliminationPassName), - worklist_(graph->GetArena(), kDefaultWorklistSize) {} + worklist_(graph->GetArena()->Adapter(kArenaAllocSsaPhiElimination)) { + worklist_.reserve(kDefaultWorklistSize); + } void Run() OVERRIDE; @@ -40,7 +43,7 @@ class SsaDeadPhiElimination : public HOptimization { static constexpr const char* kSsaDeadPhiEliminationPassName = "dead_phi_elimination"; private: - GrowableArray worklist_; + ArenaVector worklist_; static constexpr size_t kDefaultWorklistSize = 8; @@ -57,14 +60,16 @@ class SsaRedundantPhiElimination : public HOptimization { public: explicit SsaRedundantPhiElimination(HGraph* graph) : HOptimization(graph, kSsaRedundantPhiEliminationPassName), - worklist_(graph->GetArena(), kDefaultWorklistSize) {} + worklist_(graph->GetArena()->Adapter(kArenaAllocSsaPhiElimination)) { + worklist_.reserve(kDefaultWorklistSize); + } void Run() OVERRIDE; static constexpr const char* kSsaRedundantPhiEliminationPassName = "redundant_phi_elimination"; private: - GrowableArray worklist_; + ArenaVector worklist_; static constexpr size_t kDefaultWorklistSize = 8; -- cgit v1.2.3-59-g8ed1b