From 0add77a86599260aba3ea4b56e9db3da6bb881a8 Mon Sep 17 00:00:00 2001 From: Mark Mendell Date: Mon, 5 May 2014 22:28:55 -0400 Subject: ART: Ensure use counts updated when adding SSA reg Ensure that matching data structures are updated when adding SSA registers late in the compile. Change-Id: I8e664dddf52c1a9095ba5b7a8df84e5a733bbc43 Signed-off-by: Mark Mendell --- compiler/dex/mir_dataflow.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'compiler/dex/mir_dataflow.cc') diff --git a/compiler/dex/mir_dataflow.cc b/compiler/dex/mir_dataflow.cc index 2f17e08974..ed7e1f5edd 100644 --- a/compiler/dex/mir_dataflow.cc +++ b/compiler/dex/mir_dataflow.cc @@ -925,11 +925,17 @@ bool MIRGraph::FindLocalLiveIn(BasicBlock* bb) { int MIRGraph::AddNewSReg(int v_reg) { // Compiler temps always have a subscript of 0 int subscript = (v_reg < 0) ? 0 : ++ssa_last_defs_[v_reg]; - int ssa_reg = GetNumSSARegs(); + uint32_t ssa_reg = GetNumSSARegs(); SetNumSSARegs(ssa_reg + 1); ssa_base_vregs_->Insert(v_reg); ssa_subscripts_->Insert(subscript); DCHECK_EQ(ssa_base_vregs_->Size(), ssa_subscripts_->Size()); + // If we are expanding very late, update use counts too. + if (ssa_reg > 0 && use_counts_.Size() == ssa_reg) { + // Need to expand the counts. + use_counts_.Insert(0); + raw_use_counts_.Insert(0); + } return ssa_reg; } -- cgit v1.2.3-59-g8ed1b