summaryrefslogtreecommitdiffstats
path: root/src/compiler/dex/mir_dataflow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/dex/mir_dataflow.cc')
-rw-r--r--src/compiler/dex/mir_dataflow.cc44
1 files changed, 21 insertions, 23 deletions
diff --git a/src/compiler/dex/mir_dataflow.cc b/src/compiler/dex/mir_dataflow.cc
index 0c767aacd9..5e6eb8285e 100644
--- a/src/compiler/dex/mir_dataflow.cc
+++ b/src/compiler/dex/mir_dataflow.cc
@@ -29,7 +29,7 @@ namespace art {
* TODO - many optimization flags are incomplete - they will only limit the
* scope of optimizations but will not cause mis-optimizations.
*/
-const int oat_data_flow_attributes[kMirOpLast] = {
+const int MIRGraph::oat_data_flow_attributes_[kMirOpLast] = {
// 00 NOP
DF_NOP,
@@ -883,7 +883,7 @@ bool MIRGraph::FindLocalLiveIn(BasicBlock* bb)
AllocBitVector(cu_, cu_->num_dalvik_registers, false, kBitMapLiveIn);
for (mir = bb->first_mir_insn; mir != NULL; mir = mir->next) {
- int df_attributes = oat_data_flow_attributes[mir->dalvikInsn.opcode];
+ int df_attributes = oat_data_flow_attributes_[mir->dalvikInsn.opcode];
DecodedInstruction *d_insn = &mir->dalvikInsn;
if (df_attributes & DF_HAS_USES) {
@@ -934,7 +934,7 @@ int MIRGraph::AddNewSReg(int v_reg)
SetNumSSARegs(ssa_reg + 1);
InsertGrowableList(cu_, ssa_base_vregs_, v_reg);
InsertGrowableList(cu_, ssa_subscripts_, subscript);
- std::string ssa_name = GetSSAName(cu_, ssa_reg);
+ std::string ssa_name = GetSSAName(ssa_reg);
char* name = static_cast<char*>(NewMem(cu_, ssa_name.length() + 1, false, kAllocDFInfo));
strncpy(name, ssa_name.c_str(), ssa_name.length() + 1);
InsertGrowableList(cu_, ssa_strings_, reinterpret_cast<uintptr_t>(name));
@@ -1005,7 +1005,7 @@ bool MIRGraph::DoSSAConversion(BasicBlock* bb)
mir->ssa_rep = static_cast<struct SSARepresentation *>(NewMem(cu_, sizeof(SSARepresentation),
true, kAllocDFInfo));
- int df_attributes = oat_data_flow_attributes[mir->dalvikInsn.opcode];
+ int df_attributes = oat_data_flow_attributes_[mir->dalvikInsn.opcode];
// If not a pseudo-op, note non-leaf or can throw
if (static_cast<int>(mir->dalvikInsn.opcode) <
@@ -1013,7 +1013,7 @@ bool MIRGraph::DoSSAConversion(BasicBlock* bb)
int flags = Instruction::FlagsOf(mir->dalvikInsn.opcode);
if (flags & Instruction::kInvoke) {
- cu_->attributes &= ~METHOD_IS_LEAF;
+ attributes_ &= ~METHOD_IS_LEAF;
}
}
@@ -1114,19 +1114,17 @@ bool MIRGraph::DoSSAConversion(BasicBlock* bb)
}
}
- if (!cu_->disable_dataflow) {
- /*
- * Take a snapshot of Dalvik->SSA mapping at the end of each block. The
- * input to PHI nodes can be derived from the snapshot of all
- * predecessor blocks.
- */
- bb->data_flow_info->vreg_to_ssa_map =
- static_cast<int*>(NewMem(cu_, sizeof(int) * cu_->num_dalvik_registers, false,
- kAllocDFInfo));
-
- memcpy(bb->data_flow_info->vreg_to_ssa_map, vreg_to_ssa_map_,
- sizeof(int) * cu_->num_dalvik_registers);
- }
+ /*
+ * Take a snapshot of Dalvik->SSA mapping at the end of each block. The
+ * input to PHI nodes can be derived from the snapshot of all
+ * predecessor blocks.
+ */
+ bb->data_flow_info->vreg_to_ssa_map =
+ static_cast<int*>(NewMem(cu_, sizeof(int) * cu_->num_dalvik_registers, false,
+ kAllocDFInfo));
+
+ memcpy(bb->data_flow_info->vreg_to_ssa_map, vreg_to_ssa_map_,
+ sizeof(int) * cu_->num_dalvik_registers);
return true;
}
@@ -1163,7 +1161,7 @@ void MIRGraph::CompilerInitializeSSAConversion()
for (i = 0; i < num_dalvik_reg; i++) {
InsertGrowableList(cu_, ssa_base_vregs_, i);
InsertGrowableList(cu_, ssa_subscripts_, 0);
- std::string ssa_name = GetSSAName(cu_, i);
+ std::string ssa_name = GetSSAName(i);
char* name = static_cast<char*>(NewMem(cu_, ssa_name.length() + 1, true, kAllocDFInfo));
strncpy(name, ssa_name.c_str(), ssa_name.length() + 1);
InsertGrowableList(cu_, ssa_strings_, reinterpret_cast<uintptr_t>(name));
@@ -1185,7 +1183,7 @@ void MIRGraph::CompilerInitializeSSAConversion()
}
/* Add ssa reg for Method* */
- cu_->method_sreg = AddNewSReg(SSA_METHOD_BASEREG);
+ method_sreg_ = AddNewSReg(SSA_METHOD_BASEREG);
/*
* Allocate the BasicBlockDataFlow structure for the entry and code blocks
@@ -1283,7 +1281,7 @@ bool MIRGraph::CountUses(struct BasicBlock* bb)
use_counts_.elem_list[s_reg] += (1 << weight);
}
if (!(cu_->disable_opt & (1 << kPromoteCompilerTemps))) {
- int df_attributes = oat_data_flow_attributes[mir->dalvikInsn.opcode];
+ int df_attributes = oat_data_flow_attributes_[mir->dalvikInsn.opcode];
// Implicit use of Method* ? */
if (df_attributes & DF_UMS) {
/*
@@ -1298,8 +1296,8 @@ bool MIRGraph::CountUses(struct BasicBlock* bb)
uses_method_star &= InvokeUsesMethodStar(mir);
}
if (uses_method_star) {
- raw_use_counts_.elem_list[cu_->method_sreg]++;
- use_counts_.elem_list[cu_->method_sreg] += (1 << weight);
+ raw_use_counts_.elem_list[method_sreg_]++;
+ use_counts_.elem_list[method_sreg_] += (1 << weight);
}
}
}