/art/compiler/dex/ |
D | ssa_transformation.cc | 29 for (BasicBlock* bb = iter.Next(); bb != nullptr; bb = iter.Next()) { in ClearAllVisitedFlags() local 30 bb->visited = false; in ClearAllVisitedFlags() 34 BasicBlock* MIRGraph::NeedsVisit(BasicBlock* bb) { in NeedsVisit() argument 35 if (bb != nullptr) { in NeedsVisit() 36 if (bb->visited || bb->hidden) { in NeedsVisit() 37 bb = nullptr; in NeedsVisit() 40 return bb; in NeedsVisit() 43 BasicBlock* MIRGraph::NextUnvisitedSuccessor(BasicBlock* bb) { in NextUnvisitedSuccessor() argument 44 BasicBlock* res = NeedsVisit(GetBasicBlock(bb->fall_through)); in NextUnvisitedSuccessor() 46 res = NeedsVisit(GetBasicBlock(bb->taken)); in NextUnvisitedSuccessor() [all …]
|
D | post_opt_passes.cc | 28 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 29 DCHECK(bb != nullptr); in Worker() 30 MIR* mir = bb->first_mir_insn; in Worker() 38 bb->RemoveMIR(mir); in Worker() 57 for (BasicBlock* bb = first.Next(); bb != nullptr; bb = first.Next()) { in Start() local 58 bb->predecessors.clear(); in Start() 63 for (BasicBlock* bb = second.Next(); bb != nullptr; bb = second.Next()) { in Start() local 65 if (bb->hidden == true) { in Start() 70 ChildBlockIterator child_iter(bb, mir_graph); in Start() 74 child->predecessors.push_back(bb->id); in Start()
|
D | mir_optimization.cc | 38 static unsigned int Predecessors(BasicBlock* bb) { in Predecessors() argument 39 return bb->predecessors.size(); in Predecessors() 58 void MIRGraph::DoConstantPropagation(BasicBlock* bb) { in DoConstantPropagation() argument 61 for (mir = bb->first_mir_insn; mir != nullptr; mir = mir->next) { in DoConstantPropagation() 121 BasicBlock* bb = *p_bb; in AdvanceMIR() local 125 bb = GetBasicBlock(bb->fall_through); in AdvanceMIR() 126 if ((bb == nullptr) || Predecessors(bb) != 1) { in AdvanceMIR() 130 *p_bb = bb; in AdvanceMIR() 131 mir = bb->first_mir_insn; in AdvanceMIR() 145 MIR* MIRGraph::FindMoveResult(BasicBlock* bb, MIR* mir) { in FindMoveResult() argument [all …]
|
D | bb_optimizations.cc | 31 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 32 DCHECK(bb != nullptr); in Worker() 33 c_unit->mir_graph->LayoutBlocks(bb); in Worker() 46 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 47 DCHECK(bb != nullptr); in Worker() 48 c_unit->mir_graph->CombineBlocks(bb); in Worker() 75 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 76 DCHECK(bb != nullptr); in Worker() 77 c_unit->mir_graph->CountUses(bb); in Worker()
|
D | global_value_numbering.cc | 48 LocalValueNumbering* GlobalValueNumbering::PrepareBasicBlock(BasicBlock* bb, in PrepareBasicBlock() argument 53 if (bb->block_type != kDalvikByteCode && bb->block_type != kEntryBlock) { in PrepareBasicBlock() 54 DCHECK(bb->first_mir_insn == nullptr); in PrepareBasicBlock() 71 work_lvn_.reset(new (allocator) LocalValueNumbering(this, bb->id, allocator)); in PrepareBasicBlock() 72 if (bb->block_type == kEntryBlock) { in PrepareBasicBlock() 74 DCHECK(bb->first_mir_insn == nullptr); // modifications_allowed_ is irrelevant. in PrepareBasicBlock() 93 loop_head_idx != mir_graph_->GetTopologicalSortOrderIndexes()[bb->id]; in PrepareBasicBlock() 97 for (BasicBlockId pred_id : bb->predecessors) { in PrepareBasicBlock() 107 if (bb->catch_entry) { in PrepareBasicBlock() 109 } else if (bb->last_mir_insn != nullptr && in PrepareBasicBlock() [all …]
|
D | dataflow_iterator-inl.h | 107 BasicBlock* bb = mir_graph_->GetBlockList()[idx_++]; in Next() local 108 DCHECK(bb != nullptr); in Next() 109 if (!bb->hidden) { in Next() 110 res = bb; in Next() 134 BasicBlock* bb = mir_graph_->GetBasicBlock((*block_id_list_)[idx]); in Next() local 135 DCHECK(bb != nullptr); in Next() 139 return bb; in Next() 145 BasicBlock* bb = mir_graph_->GetBasicBlock((*block_id_list_)[idx_ - 1]); in Next() local 146 bb->visited = true; in Next() 149 ChildBlockIterator iter(bb, mir_graph_); in Next() [all …]
|
D | bb_optimizations.h | 130 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 131 DCHECK(bb != nullptr); in Worker() 132 c_unit->mir_graph->InlineSpecialMethods(bb); in Worker() 187 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 188 DCHECK(bb != nullptr); in Worker() 189 return c_unit->mir_graph->EliminateNullChecks(bb); in Worker() 218 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 219 DCHECK(bb != nullptr); in Worker() 220 return c_unit->mir_graph->EliminateClassInitChecks(bb); in Worker() 253 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local [all …]
|
D | mir_graph.cc | 245 BasicBlock* bb = GetBasicBlock(successor_block_info->block); in SplitBlock() local 246 if (bb != nullptr) { in SplitBlock() 247 bb->ErasePredecessor(orig_block->id); in SplitBlock() 248 bb->predecessors.push_back(bottom_block->id); in SplitBlock() 273 p->bb = bottom_block->id; in SplitBlock() 277 p->bb = bottom_block->id; in SplitBlock() 303 BasicBlock* bb = GetBasicBlock(block_id); in FindBlock() local 305 if ((bb != nullptr) && (bb->start_offset == code_offset)) { in FindBlock() 307 return bb; in FindBlock() 315 if (bb != nullptr) { in FindBlock() [all …]
|
D | type_inference.cc | 185 lb->second.ending_mod_s_reg[check_cast->bb] = extra_s_reg; in AddCheckCast() 186 lb->second.def_phi_blocks_->SetBit(check_cast->bb); in AddCheckCast() 229 for (BasicBlock* bb = iter.Next(); bb != nullptr; bb = iter.Next()) { in AddPseudoPhis() local 230 if (bb->data_flow_info == nullptr || bb->block_type == kEntryBlock) { in AddPseudoPhis() 233 BasicBlockId bb_id = bb->id; in AddPseudoPhis() 238 if (IsSRegLiveAtStart(bb, v_reg, s_reg)) { in AddPseudoPhis() 240 BasicBlock* pred_bb = FindTopologicallyEarliestPredecessor(bb); in AddPseudoPhis() 279 void TypeInference::CheckCastData::Start(BasicBlock* bb) { in Start() argument 281 entry.second.current_mod_s_reg = entry.second.starting_mod_s_reg[bb->id]; in Start() 285 bool TypeInference::CheckCastData::ProcessPseudoPhis(BasicBlock* bb, Type* sregs) { in ProcessPseudoPhis() argument [all …]
|
D | mir_graph.h | 335 BasicBlockId bb; variable 356 explicit MIR() : offset(0), optimization_flags(0), m_unit_index(0), bb(NullBasicBlockId), in MIR() 515 ChildBlockIterator(BasicBlock* bb, MIRGraph* mir_graph); 1109 MIR* FindMoveResult(BasicBlock* bb, MIR* mir); 1119 bool EliminateNullChecks(BasicBlock* bb); 1122 bool InferTypes(BasicBlock* bb); 1125 bool EliminateClassInitChecks(BasicBlock* bb); 1128 bool ApplyGlobalValueNumbering(BasicBlock* bb); 1131 bool EliminateDeadCode(BasicBlock* bb); 1135 bool EliminateSuspendChecks(BasicBlock* bb); [all …]
|
D | gvn_dead_code_elimination_test.cc | 94 #define DEF_CONST(bb, opcode, reg, value) \ argument 95 { bb, opcode, value, 0u, 0, { }, 1, { reg } } 96 #define DEF_CONST_WIDE(bb, opcode, reg, value) \ argument 97 { bb, opcode, value, 0u, 0, { }, 2, { reg, reg + 1 } } 98 #define DEF_CONST_STRING(bb, opcode, reg, index) \ argument 99 { bb, opcode, index, 0u, 0, { }, 1, { reg } } 100 #define DEF_IGET(bb, opcode, reg, obj, field_info) \ argument 101 { bb, opcode, 0u, field_info, 1, { obj }, 1, { reg } } 102 #define DEF_IGET_WIDE(bb, opcode, reg, obj, field_info) \ argument 103 { bb, opcode, 0u, field_info, 1, { obj }, 2, { reg, reg + 1 } } [all …]
|
D | type_inference_test.cc | 97 #define DEF_CONST(bb, opcode, reg, value) \ argument 98 { bb, opcode, value, 0u, 0, { }, 1, { reg } } 99 #define DEF_CONST_WIDE(bb, opcode, reg, value) \ argument 100 { bb, opcode, value, 0u, 0, { }, 2, { reg, reg + 1 } } 101 #define DEF_CONST_STRING(bb, opcode, reg, index) \ argument 102 { bb, opcode, index, 0u, 0, { }, 1, { reg } } 103 #define DEF_IGET(bb, opcode, reg, obj, field_info) \ argument 104 { bb, opcode, 0u, field_info, 1, { obj }, 1, { reg } } 105 #define DEF_IGET_WIDE(bb, opcode, reg, obj, field_info) \ argument 106 { bb, opcode, 0u, field_info, 1, { obj }, 2, { reg, reg + 1 } } [all …]
|
D | mir_optimization_test.cc | 84 #define DEF_SGET_SPUT(bb, opcode, vA, field_info) \ argument 85 { bb, opcode, field_info, vA, 0u, 0u } 86 #define DEF_IGET_IPUT(bb, opcode, vA, vB, field_info) \ argument 87 { bb, opcode, field_info, vA, vB, 0u } 88 #define DEF_AGET_APUT(bb, opcode, vA, vB, vC) \ argument 89 { bb, opcode, 0u, vA, vB, vC } 90 #define DEF_INVOKE(bb, opcode, vC, method_info) \ argument 91 { bb, opcode, method_info, 0u, 0u, vC } 92 #define DEF_OTHER0(bb, opcode) \ argument 93 { bb, opcode, 0u, 0u, 0u, 0u } [all …]
|
D | mir_analysis.cc | 960 void MIRGraph::AnalyzeBlock(BasicBlock* bb, MethodStats* stats) { in AnalyzeBlock() argument 961 if (bb->visited || (bb->block_type != kDalvikByteCode)) { in AnalyzeBlock() 971 BasicBlock* ending_bb = bb; in AnalyzeBlock() 988 if ((GetBasicBlock(ending_bb->taken)->taken == bb->id) || in AnalyzeBlock() 989 (GetBasicBlock(ending_bb->taken)->fall_through == bb->id)) { in AnalyzeBlock() 994 if ((ending_bb->taken != NullBasicBlockId) && (ending_bb->taken == bb->id)) { in AnalyzeBlock() 998 BasicBlock* tbb = bb; in AnalyzeBlock() 1199 for (BasicBlock* bb = iter.Next(); bb != nullptr; bb = iter.Next()) { in SkipCompilation() local 1200 AnalyzeBlock(bb, &stats); in SkipCompilation() 1218 for (BasicBlock* bb = iter.Next(); bb != nullptr; bb = iter.Next()) { in DoCacheFieldLoweringInfo() local [all …]
|
D | global_value_numbering_test.cc | 94 #define DEF_CONST(bb, opcode, reg, value) \ argument 95 { bb, opcode, value, 0u, 0, { }, 1, { reg } } 96 #define DEF_CONST_WIDE(bb, opcode, reg, value) \ argument 97 { bb, opcode, value, 0u, 0, { }, 2, { reg, reg + 1 } } 98 #define DEF_CONST_STRING(bb, opcode, reg, index) \ argument 99 { bb, opcode, index, 0u, 0, { }, 1, { reg } } 100 #define DEF_IGET(bb, opcode, reg, obj, field_info) \ argument 101 { bb, opcode, 0u, field_info, 1, { obj }, 1, { reg } } 102 #define DEF_IGET_WIDE(bb, opcode, reg, obj, field_info) \ argument 103 { bb, opcode, 0u, field_info, 1, { obj }, 2, { reg, reg + 1 } } [all …]
|
D | mir_dataflow.cc | 985 bool MIRGraph::FindLocalLiveIn(BasicBlock* bb) { in FindLocalLiveIn() argument 989 if (bb->data_flow_info == nullptr) return false; in FindLocalLiveIn() 991 use_v = bb->data_flow_info->use_v = in FindLocalLiveIn() 993 def_v = bb->data_flow_info->def_v = in FindLocalLiveIn() 995 live_in_v = bb->data_flow_info->live_in_v = in FindLocalLiveIn() 998 for (mir = bb->first_mir_insn; mir != nullptr; mir = mir->next) { in FindLocalLiveIn() 1187 bool MIRGraph::DoSSAConversion(BasicBlock* bb) { in DoSSAConversion() argument 1188 if (bb->data_flow_info == nullptr) return false; in DoSSAConversion() 1194 BasicBlockId bb_id = bb->id; in DoSSAConversion() 1197 if (!bb->data_flow_info->live_in_v->IsBitSet(dalvik_reg)) { in DoSSAConversion() [all …]
|
D | mir_graph_test.cc | 69 BasicBlock* bb = cu_.mir_graph->CreateNewBB(def->type); in DoPrepareBasicBlocks() local 71 bb->successor_block_list_type = kNotUsed; in DoPrepareBasicBlocks() 72 bb->fall_through = (def->num_successors >= 1) ? def->successors[0] : 0u; in DoPrepareBasicBlocks() 73 bb->taken = (def->num_successors >= 2) ? def->successors[1] : 0u; in DoPrepareBasicBlocks() 75 bb->successor_block_list_type = kPackedSwitch; in DoPrepareBasicBlocks() 76 bb->fall_through = 0u; in DoPrepareBasicBlocks() 77 bb->taken = 0u; in DoPrepareBasicBlocks() 78 bb->successor_blocks.reserve(def->num_successors); in DoPrepareBasicBlocks() 85 bb->successor_blocks.push_back(successor_block_info); in DoPrepareBasicBlocks() 88 bb->predecessors.assign(def->predecessors, def->predecessors + def->num_predecessors); in DoPrepareBasicBlocks() [all …]
|
D | post_opt_passes.h | 240 BasicBlock* bb = down_cast<PassMEDataHolder*>(data)->bb; in Worker() local 241 DCHECK(bb != nullptr); in Worker() 242 c_unit->mir_graph->InsertPhiNodeOperands(bb); in Worker() 286 BasicBlock* bb = pass_me_data_holder->bb; in Worker() local 287 DCHECK(bb != nullptr); in Worker() 288 return c_unit->mir_graph->InferTypes(bb); in Worker()
|
D | pass_driver_me.h | 41 pass_me_data_holder_.bb = nullptr; in PassDriverME() 192 for (BasicBlock* bb = iterator->Next(change); bb != nullptr; bb = iterator->Next(change)) { in DoWalkBasicBlocks() local 193 data->bb = bb; in DoWalkBasicBlocks()
|
D | type_inference.h | 71 bool Apply(BasicBlock* bb); 384 void Start(BasicBlock* bb); 385 bool ProcessPseudoPhis(BasicBlock* bb, Type* sregs); 392 BasicBlock* FindTopologicallyEarliestPredecessor(BasicBlock* bb); 393 bool IsSRegLiveAtStart(BasicBlock* bb, int v_reg, int32_t s_reg); 423 int32_t PhiInputModifiedSReg(int32_t s_reg, BasicBlock* bb, size_t pred_idx);
|
/art/compiler/dex/quick/ |
D | mir_to_lir.cc | 394 bool Mir2Lir::GenSpecialCase(BasicBlock* bb, MIR* mir, const InlineMethod& special) { in GenSpecialCase() argument 419 return_mir = bb->GetNextUnconditionalMir(mir_graph_, mir); in GenSpecialCase() 428 return_mir = bb->GetNextUnconditionalMir(mir_graph_, mir); in GenSpecialCase() 432 return_mir = bb->GetNextUnconditionalMir(mir_graph_, mir); in GenSpecialCase() 476 void Mir2Lir::CompileDalvikInstruction(MIR* mir, BasicBlock* bb, LIR* label_list) { in CompileDalvikInstruction() argument 656 GenFilledNewArray(mir_graph_->NewMemCallInfo(bb, mir, kStatic, in CompileDalvikInstruction() 661 GenFilledNewArray(mir_graph_->NewMemCallInfo(bb, mir, kStatic, in CompileDalvikInstruction() 672 if (mir_graph_->IsBackEdge(bb, bb->taken)) { in CompileDalvikInstruction() 673 GenSuspendTestAndBranch(opt_flags, &label_list[bb->taken]); in CompileDalvikInstruction() 675 OpUnconditionalBranch(&label_list[bb->taken]); in CompileDalvikInstruction() [all …]
|
D | codegen_util.cc | 561 BasicBlock* bb = mir_graph_->GetBasicBlock(tab_rec->switch_mir->bb); in InstallSwitchTables() local 562 DCHECK(bb != nullptr); in InstallSwitchTables() 564 for (SuccessorBlockInfo* successor_block_info : bb->successor_blocks) { in InstallSwitchTables() 584 BasicBlock* bb = mir_graph_->GetBasicBlock(tab_rec->switch_mir->bb); in InstallSwitchTables() local 585 DCHECK(bb != nullptr); in InstallSwitchTables() 588 for (SuccessorBlockInfo* successor_block_info : bb->successor_blocks) { in InstallSwitchTables() 933 BasicBlock* bb = mir_graph_->GetBasicBlock(bbid); in InsertCaseLabel() local 934 DCHECK(bb != nullptr); in InsertCaseLabel() 935 new_label->dalvik_offset = bb->start_offset; in InsertCaseLabel() 1356 void Mir2Lir::GenMachineSpecificExtendedMethodMIR(BasicBlock* bb, MIR* mir) { in GenMachineSpecificExtendedMethodMIR() argument [all …]
|
D | dex_file_method_inliner.h | 95 bool GenInline(MIRGraph* mir_graph, BasicBlock* bb, MIR* invoke, uint32_t method_idx) 360 static bool GenInlineConst(MIRGraph* mir_graph, BasicBlock* bb, MIR* invoke, 362 static bool GenInlineReturnArg(MIRGraph* mir_graph, BasicBlock* bb, MIR* invoke, 364 static bool GenInlineIGet(MIRGraph* mir_graph, BasicBlock* bb, MIR* invoke, 366 static bool GenInlineIPut(MIRGraph* mir_graph, BasicBlock* bb, MIR* invoke,
|
/art/test/009-instanceof/src/ |
D | Main.java | 24 ImplBSub bb = new ImplBSub(); in main() local 28 face1 = bb; in main() 32 System.out.println("bb.mWhoami = " + bb.mWhoami); in main() 41 bb = (ImplBSub) face1; in main()
|
/art/test/451-spill-splot/src/ |
D | Main.java | 34 float bb = 1; in main() local 49 System.out.println(aa + bb + cc + dd + ee + ff + gg + hh + ii + jj + kk + ll + mm + nn); in main() 63 bb = computeFloat(); in main()
|