diff options
author | Vladimir Marko <vmarko@google.com> | 2014-12-19 18:17:26 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-12-19 18:17:27 +0000 |
commit | e1cb3301b9d3afc488a916b6c75bf7e2885eec81 (patch) | |
tree | 3fe7873cde1f13b68851e95c8d2a80d62164ea32 | |
parent | a64d0142edd7c325c0a59d170d8c82c8176faa03 (diff) | |
parent | 1c6ea4483982803b3bc3635b7dd71744c1fe1cef (diff) | |
download | android_art-e1cb3301b9d3afc488a916b6c75bf7e2885eec81.tar.gz android_art-e1cb3301b9d3afc488a916b6c75bf7e2885eec81.tar.bz2 android_art-e1cb3301b9d3afc488a916b6c75bf7e2885eec81.zip |
Merge "Move two members out of MIRGraph::temp_::ssa."
-rw-r--r-- | compiler/dex/mir_dataflow.cc | 22 | ||||
-rw-r--r-- | compiler/dex/mir_graph.cc | 2 | ||||
-rw-r--r-- | compiler/dex/mir_graph.h | 6 | ||||
-rw-r--r-- | compiler/dex/ssa_transformation.cc | 8 |
4 files changed, 21 insertions, 17 deletions
diff --git a/compiler/dex/mir_dataflow.cc b/compiler/dex/mir_dataflow.cc index ae29ae7fc2..6704112281 100644 --- a/compiler/dex/mir_dataflow.cc +++ b/compiler/dex/mir_dataflow.cc @@ -1052,7 +1052,7 @@ bool MIRGraph::FindLocalLiveIn(BasicBlock* bb) { } int MIRGraph::AddNewSReg(int v_reg) { - int subscript = ++temp_.ssa.ssa_last_defs_[v_reg]; + int subscript = ++ssa_last_defs_[v_reg]; uint32_t ssa_reg = GetNumSSARegs(); SetNumSSARegs(ssa_reg + 1); ssa_base_vregs_.push_back(v_reg); @@ -1070,14 +1070,14 @@ int MIRGraph::AddNewSReg(int v_reg) { /* Find out the latest SSA register for a given Dalvik register */ void MIRGraph::HandleSSAUse(int* uses, int dalvik_reg, int reg_index) { DCHECK((dalvik_reg >= 0) && (dalvik_reg < static_cast<int>(GetNumOfCodeAndTempVRs()))); - uses[reg_index] = temp_.ssa.vreg_to_ssa_map_[dalvik_reg]; + uses[reg_index] = vreg_to_ssa_map_[dalvik_reg]; } /* Setup a new SSA register for a given Dalvik register */ void MIRGraph::HandleSSADef(int* defs, int dalvik_reg, int reg_index) { DCHECK((dalvik_reg >= 0) && (dalvik_reg < static_cast<int>(GetNumOfCodeAndTempVRs()))); int ssa_reg = AddNewSReg(dalvik_reg); - temp_.ssa.vreg_to_ssa_map_[dalvik_reg] = ssa_reg; + vreg_to_ssa_map_[dalvik_reg] = ssa_reg; defs[reg_index] = ssa_reg; } @@ -1319,7 +1319,7 @@ bool MIRGraph::DoSSAConversion(BasicBlock* bb) { static_cast<int*>(arena_->Alloc(sizeof(int) * GetNumOfCodeAndTempVRs(), kArenaAllocDFInfo)); - memcpy(bb->data_flow_info->vreg_to_ssa_map_exit, temp_.ssa.vreg_to_ssa_map_, + memcpy(bb->data_flow_info->vreg_to_ssa_map_exit, vreg_to_ssa_map_, sizeof(int) * GetNumOfCodeAndTempVRs()); return true; } @@ -1369,15 +1369,17 @@ void MIRGraph::CompilerInitializeSSAConversion() { * Initialize the DalvikToSSAMap map. There is one entry for each * Dalvik register, and the SSA names for those are the same. */ - temp_.ssa.vreg_to_ssa_map_ = - reinterpret_cast<int*>(temp_scoped_alloc_->Alloc(sizeof(int) * num_reg, kArenaAllocDFInfo)); + vreg_to_ssa_map_ = + static_cast<int*>(arena_->Alloc(sizeof(int) * num_reg, + kArenaAllocDFInfo)); /* Keep track of the higest def for each dalvik reg */ - temp_.ssa.ssa_last_defs_ = - reinterpret_cast<int*>(temp_scoped_alloc_->Alloc(sizeof(int) * num_reg, kArenaAllocDFInfo)); + ssa_last_defs_ = + static_cast<int*>(arena_->Alloc(sizeof(int) * num_reg, + kArenaAllocDFInfo)); for (unsigned int i = 0; i < num_reg; i++) { - temp_.ssa.vreg_to_ssa_map_[i] = i; - temp_.ssa.ssa_last_defs_[i] = 0; + vreg_to_ssa_map_[i] = i; + ssa_last_defs_[i] = 0; } // Create a compiler temporary for Method*. This is done after SSA initialization. diff --git a/compiler/dex/mir_graph.cc b/compiler/dex/mir_graph.cc index 8b73863905..312a6ebcd6 100644 --- a/compiler/dex/mir_graph.cc +++ b/compiler/dex/mir_graph.cc @@ -82,6 +82,8 @@ MIRGraph::MIRGraph(CompilationUnit* cu, ArenaAllocator* arena) cu_(cu), ssa_base_vregs_(arena->Adapter(kArenaAllocSSAToDalvikMap)), ssa_subscripts_(arena->Adapter(kArenaAllocSSAToDalvikMap)), + vreg_to_ssa_map_(NULL), + ssa_last_defs_(NULL), is_constant_v_(NULL), constant_values_(NULL), use_counts_(arena->Adapter()), diff --git a/compiler/dex/mir_graph.h b/compiler/dex/mir_graph.h index 23bdd87239..af97f51975 100644 --- a/compiler/dex/mir_graph.h +++ b/compiler/dex/mir_graph.h @@ -1317,6 +1317,9 @@ class MIRGraph { CompilationUnit* const cu_; ArenaVector<int> ssa_base_vregs_; ArenaVector<int> ssa_subscripts_; + // Map original Dalvik virtual reg i to the current SSA name. + int* vreg_to_ssa_map_; // length == method->registers_size + int* ssa_last_defs_; // length == method->registers_size ArenaBitVector* is_constant_v_; // length == num_ssa_reg int* constant_values_; // length == num_ssa_reg // Use counts of ssa names. @@ -1369,9 +1372,6 @@ class MIRGraph { size_t num_vregs; ArenaBitVector* work_live_vregs; ArenaBitVector** def_block_matrix; // num_vregs x num_blocks_. - // Map original Dalvik virtual reg i to the current SSA name. - int* vreg_to_ssa_map_; // length == method->registers_size - int* ssa_last_defs_; // length == method->registers_size } ssa; // Global value numbering. struct { diff --git a/compiler/dex/ssa_transformation.cc b/compiler/dex/ssa_transformation.cc index 2a1659203f..3905649ac6 100644 --- a/compiler/dex/ssa_transformation.cc +++ b/compiler/dex/ssa_transformation.cc @@ -558,24 +558,24 @@ void MIRGraph::DoDFSPreOrderSSARename(BasicBlock* block) { ScopedArenaAllocator allocator(&cu_->arena_stack); int* saved_ssa_map = static_cast<int*>(allocator.Alloc(map_size, kArenaAllocDalvikToSSAMap)); - memcpy(saved_ssa_map, temp_.ssa.vreg_to_ssa_map_, map_size); + memcpy(saved_ssa_map, vreg_to_ssa_map_, map_size); if (block->fall_through != NullBasicBlockId) { DoDFSPreOrderSSARename(GetBasicBlock(block->fall_through)); /* Restore SSA map snapshot */ - memcpy(temp_.ssa.vreg_to_ssa_map_, saved_ssa_map, map_size); + memcpy(vreg_to_ssa_map_, saved_ssa_map, map_size); } if (block->taken != NullBasicBlockId) { DoDFSPreOrderSSARename(GetBasicBlock(block->taken)); /* Restore SSA map snapshot */ - memcpy(temp_.ssa.vreg_to_ssa_map_, saved_ssa_map, map_size); + memcpy(vreg_to_ssa_map_, saved_ssa_map, map_size); } if (block->successor_block_list_type != kNotUsed) { for (SuccessorBlockInfo* successor_block_info : block->successor_blocks) { BasicBlock* succ_bb = GetBasicBlock(successor_block_info->block); DoDFSPreOrderSSARename(succ_bb); /* Restore SSA map snapshot */ - memcpy(temp_.ssa.vreg_to_ssa_map_, saved_ssa_map, map_size); + memcpy(vreg_to_ssa_map_, saved_ssa_map, map_size); } } return; |