diff options
author | 2015-09-02 17:03:22 +0100 | |
---|---|---|
committer | 2015-09-03 13:09:37 +0100 | |
commit | 91e11c0c840193c6822e66846020b6647de243d5 (patch) | |
tree | 0c5398ef59c464c1848afd0113c74b6aeb75cf42 /compiler/optimizing/gvn.cc | |
parent | f9f6441c665b5ff9004d3ed55014f46d416fb1bb (diff) |
Optimizing: Tag basic block allocations with their source.
Replace GrowableArray with ArenaVector in HBasicBlock and,
to track the source of allocations, assign one new and two
Quick's arena allocation types to these vectors. Rename
kArenaAllocSuccessor to kArenaAllocSuccessors.
Bug: 23736311
Change-Id: I984aef6e615ae2380a532f5c6726af21015f43f5
Diffstat (limited to 'compiler/optimizing/gvn.cc')
-rw-r--r-- | compiler/optimizing/gvn.cc | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/compiler/optimizing/gvn.cc b/compiler/optimizing/gvn.cc index 833dfb00a1..5bb4e8e099 100644 --- a/compiler/optimizing/gvn.cc +++ b/compiler/optimizing/gvn.cc @@ -340,8 +340,8 @@ void GlobalValueNumberer::Run() { void GlobalValueNumberer::VisitBasicBlock(HBasicBlock* block) { ValueSet* set = nullptr; - const GrowableArray<HBasicBlock*>& predecessors = block->GetPredecessors(); - if (predecessors.Size() == 0 || predecessors.Get(0)->IsEntryBlock()) { + const ArenaVector<HBasicBlock*>& predecessors = block->GetPredecessors(); + if (predecessors.size() == 0 || predecessors[0]->IsEntryBlock()) { // The entry block should only accumulate constant instructions, and // the builder puts constants only in the entry block. // Therefore, there is no need to propagate the value set to the next block. @@ -349,8 +349,8 @@ void GlobalValueNumberer::VisitBasicBlock(HBasicBlock* block) { } else { HBasicBlock* dominator = block->GetDominator(); ValueSet* dominator_set = sets_.Get(dominator->GetBlockId()); - if (dominator->GetSuccessors().Size() == 1) { - DCHECK_EQ(dominator->GetSuccessors().Get(0), block); + if (dominator->GetSuccessors().size() == 1) { + DCHECK_EQ(dominator->GetSuccessor(0), block); set = dominator_set; } else { // We have to copy if the dominator has other successors, or `block` is not a successor @@ -361,9 +361,9 @@ void GlobalValueNumberer::VisitBasicBlock(HBasicBlock* block) { if (block->IsLoopHeader()) { DCHECK_EQ(block->GetDominator(), block->GetLoopInformation()->GetPreHeader()); set->Kill(side_effects_.GetLoopEffects(block)); - } else if (predecessors.Size() > 1) { - for (size_t i = 0, e = predecessors.Size(); i < e; ++i) { - set->IntersectWith(sets_.Get(predecessors.Get(i)->GetBlockId())); + } else if (predecessors.size() > 1) { + for (HBasicBlock* predecessor : predecessors) { + set->IntersectWith(sets_.Get(predecessor->GetBlockId())); if (set->IsEmpty()) { break; } |