Home
last modified time | relevance | path

Searched refs:bb (Results 1 – 25 of 55) sorted by relevance

123

/art/compiler/dex/
Dssa_transformation.cc29 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 …]
Dpost_opt_passes.cc28 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()
Dmir_optimization.cc38 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 …]
Dbb_optimizations.cc31 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()
Dglobal_value_numbering.cc48 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 …]
Ddataflow_iterator-inl.h107 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 …]
Dbb_optimizations.h130 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 …]
Dmir_graph.cc245 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 …]
Dtype_inference.cc185 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 …]
Dmir_graph.h335 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 …]
Dgvn_dead_code_elimination_test.cc94 #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 …]
Dtype_inference_test.cc97 #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 …]
Dmir_optimization_test.cc84 #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 …]
Dmir_analysis.cc960 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 …]
Dglobal_value_numbering_test.cc94 #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 …]
Dmir_dataflow.cc985 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 …]
Dmir_graph_test.cc69 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 …]
Dpost_opt_passes.h240 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()
Dpass_driver_me.h41 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()
Dtype_inference.h71 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/
Dmir_to_lir.cc394 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 …]
Dcodegen_util.cc561 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 …]
Ddex_file_method_inliner.h95 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/
DMain.java24 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/
DMain.java34 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()

123