summaryrefslogtreecommitdiff
path: root/compiler/optimizing/gvn.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2015-09-02 17:03:22 +0100
committer Vladimir Marko <vmarko@google.com> 2015-09-03 13:09:37 +0100
commit91e11c0c840193c6822e66846020b6647de243d5 (patch)
tree0c5398ef59c464c1848afd0113c74b6aeb75cf42 /compiler/optimizing/gvn.cc
parentf9f6441c665b5ff9004d3ed55014f46d416fb1bb (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.cc14
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;
}