Home
last modified time | relevance | path

Searched refs:HBasicBlock (Results 1 – 25 of 113) sorted by relevance

12345

/aosp12/art/compiler/optimizing/
H A Dgraph_test.cc29 HBasicBlock* CreateIfBlock(HGraph* graph);
30 HBasicBlock* CreateGotoBlock(HGraph* graph);
31 HBasicBlock* CreateEntryBlock(HGraph* graph);
32 HBasicBlock* CreateReturnBlock(HGraph* graph);
33 HBasicBlock* CreateExitBlock(HGraph* graph);
37 HBasicBlock* if_block = new (GetAllocator()) HBasicBlock(graph); in CreateIfBlock()
48 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in CreateGotoBlock()
56 HBasicBlock* block = CreateGotoBlock(graph); in CreateEntryBlock()
62 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in CreateReturnBlock()
70 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in CreateExitBlock()
[all …]
H A Dloop_optimization_test.cc78 HBasicBlock* AddLoop(HBasicBlock* position, HBasicBlock* successor) { in AddLoop()
79 HBasicBlock* header = new (GetAllocator()) HBasicBlock(graph_); in AddLoop()
80 HBasicBlock* body = new (GetAllocator()) HBasicBlock(graph_); in AddLoop()
127 HBasicBlock* entry_block_;
129 HBasicBlock* exit_block_;
178 HBasicBlock* si = b; in TEST_F()
221 HBasicBlock* header = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
222 HBasicBlock* body = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
271 HBasicBlock* if_block = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
272 HBasicBlock* preheader0 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
[all …]
H A Dsuperblock_cloner.h37 HEdge(HBasicBlock* from, HBasicBlock* to) : from_(from->GetBlockId()), to_(to->GetBlockId()) { in HEdge()
80 HBasicBlock* block_to = graph->GetBlocks()[to]; in IsEdgeValid()
139 using HBasicBlockMap = ArenaSafeMap<HBasicBlock*, HBasicBlock*>;
183 HBasicBlock* CloneBasicBlock(const HBasicBlock* orig_block);
195 HBasicBlock* GetBlockCopy(HBasicBlock* orig_block) const { in GetBlockCopy()
293 void RemapOrigInternalOrIncomingEdge(HBasicBlock* orig_block, HBasicBlock* orig_succ);
296 void AddCopyInternalEdge(HBasicBlock* orig_block, HBasicBlock* orig_succ);
299 void RemapCopyInternalEdge(HBasicBlock* orig_block, HBasicBlock* orig_succ);
425 HBasicBlock* DoPeeling() { in DoPeeling()
454 HBasicBlock* DoUnrolling() { in DoUnrolling()
[all …]
H A Dsuperblock_cloner_test.cc63 void CreateBasicLoopDataFlow(HBasicBlock* loop_header, HBasicBlock* loop_body) { in CreateBasicLoopDataFlow()
117 HBasicBlock* header = nullptr; in TEST_F()
148 HBasicBlock* header = nullptr; in TEST_F()
229 HBasicBlock* header = nullptr; in TEST_F()
268 HBasicBlock* header = nullptr; in TEST_F()
292 HBasicBlock* header = nullptr; in TEST_F()
329 HBasicBlock* header = nullptr; in TEST_F()
366 HBasicBlock* header = nullptr; in TEST_F()
414 HBasicBlock* header = nullptr; in TEST_F()
467 HBasicBlock* header = nullptr; in TEST_F()
[all …]
H A Dbounds_check_elimination_test.cc67 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
80 HBasicBlock* block1 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
363 HBasicBlock* entry = new (allocator) HBasicBlock(graph); in BuildSSAGraph1()
374 HBasicBlock* block = new (allocator) HBasicBlock(graph); in BuildSSAGraph1()
381 HBasicBlock* exit = new (allocator) HBasicBlock(graph); in BuildSSAGraph1()
478 HBasicBlock* entry = new (allocator) HBasicBlock(graph); in BuildSSAGraph2()
490 HBasicBlock* block = new (allocator) HBasicBlock(graph); in BuildSSAGraph2()
501 HBasicBlock* exit = new (allocator) HBasicBlock(graph); in BuildSSAGraph2()
588 HBasicBlock* entry = new (allocator) HBasicBlock(graph); in BuildSSAGraph3()
610 HBasicBlock* exit = new (allocator) HBasicBlock(graph); in BuildSSAGraph3()
[all …]
H A Dgvn_test.cc31 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
40 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
112 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
121 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
135 HBasicBlock* then = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
136 HBasicBlock* else_ = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
137 HBasicBlock* join = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
191 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
201 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
217 HBasicBlock* exit = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
[all …]
H A Dnodes.cc523 HBasicBlock* HGraph::SplitEdge(HBasicBlock* block, HBasicBlock* successor) { in SplitEdge()
1112 bool HBasicBlock::Dominates(HBasicBlock* other) const { in Dominates()
2109 HBasicBlock* HBasicBlock::SplitBefore(HInstruction* cursor) { in SplitBefore()
2139 HBasicBlock* HBasicBlock::CreateImmediateDominator() { in CreateImmediateDominator()
2187 HBasicBlock* HBasicBlock::SplitAfterForInlining(HInstruction* cursor) { in SplitAfterForInlining()
2285 ArrayRef<HBasicBlock* const> HBasicBlock::GetNormalSuccessors() const { in GetNormalSuccessors()
2538 void HBasicBlock::MergeInstructionsWith(HBasicBlock* other) { in MergeInstructionsWith()
2546 void HBasicBlock::MergeWith(HBasicBlock* other) { in MergeWith()
2591 void HBasicBlock::MergeWithInlined(HBasicBlock* other) { in MergeWithInlined()
2623 void HBasicBlock::ReplaceWith(HBasicBlock* other) { in ReplaceWith()
[all …]
H A Dblock_builder.cc53 HBasicBlock* block = branch_targets_[store_dex_pc]; in MaybeCreateBlockAt()
147 HBasicBlock* block = graph_->GetEntryBlock(); in ConnectBasicBlocks()
159 HBasicBlock* next_block = GetBlockAt(dex_pc); in ConnectBasicBlocks()
226 HBasicBlock* block, in GetTryItem()
287 for (HBasicBlock* block : graph_->GetBlocks()) { in InsertTryBoundaryBlocks()
336 HBasicBlock* catch_block = GetBlockAt(address); in InsertTryBoundaryBlocks()
339 HBasicBlock* new_catch_block = new (allocator_) HBasicBlock(graph_, address); in InsertTryBoundaryBlocks()
410 HBasicBlock* block = GetBlockAt(target_dex_pc); in InsertSynthesizedLoopsForOsr()
430 HBasicBlock* loop_block = new (allocator_) HBasicBlock(graph_, block->GetDexPc()); in InsertSynthesizedLoopsForOsr()
470 HBasicBlock* entry_block = new (allocator_) HBasicBlock(graph_, kNoDexPc); in BuildIntrinsic()
[all …]
H A Dsuperblock_cloner.cc294 HBasicBlock* current = worklist.back(); in FindBackEdgesLocal()
319 HBasicBlock* block_entry = nullptr; in RecalculateBackEdgesInfo()
354 HBasicBlock* block = GetBlockById(idx); in RecalculateBackEdgesInfo()
427 HBasicBlock* phi_block = phi->GetBlock(); in ResolvePhi()
468 for (HBasicBlock* exit : exits) { in FindAndSetLocalAreaForAdjustments()
547 HBasicBlock* orig_block = entry.first; in ResolveDataFlow()
620 HBasicBlock* exit_block = exits[0]; in ConstructSubgraphClosedSSA()
1017 HBasicBlock* SuperblockCloner::CloneBasicBlock(const HBasicBlock* orig_block) { in CloneBasicBlock()
1019 HBasicBlock* copy_block = new (arena_) HBasicBlock(graph, orig_block->GetDexPc()); in CloneBasicBlock()
1095 ArenaVector<HBasicBlock*> entry_blocks( in IsSubgraphConnected()
[all …]
H A Dnodes_test.cc61 std::all_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F()
65 std::any_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F()
75 std::none_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F()
79 std::all_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F()
117 std::all_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F()
146 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
154 HBasicBlock* first_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
161 HBasicBlock* exit_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
186 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
211 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
[all …]
H A Dexecution_subgraph.h62 inline HBasicBlock* GetBlock(uint32_t id) const { in GetBlock()
64 HBasicBlock* blk = graph_->GetBlocks()[id]; in GetBlock()
69 inline HBasicBlock* operator()(uint32_t id) const { in operator()
83 bool operator()(const HBasicBlock* b) const { in operator()
153 bool IsEntryBlock(const HBasicBlock* blk) const { in IsEntryBlock()
167 bool ContainsBlock(const HBasicBlock* blk) const { in ContainsBlock()
174 bool SucceedsBlock(const HBasicBlock* blk) const { in SucceedsBlock()
239 bool ContainsBlock(const HBasicBlock* blk) const { in ContainsBlock()
248 void RemoveBlock(const HBasicBlock* to_remove);
281 bool operator()(HBasicBlock* blk) const { in operator()
[all …]
H A Dcommon_dominator.h30 static HBasicBlock* ForPair(HBasicBlock* block1, HBasicBlock* block2) { in ForPair()
37 explicit CommonDominator(HBasicBlock* block) in CommonDominator()
42 void Update(HBasicBlock* block) { in Update()
49 HBasicBlock* block2 = dominator_; in Update()
77 HBasicBlock* Get() const { in Get()
82 static size_t ChainLength(HBasicBlock* block) { in ChainLength()
91 HBasicBlock* dominator_;
H A Dlinear_order.cc40 static void AddToListForLinearization(ScopedArenaVector<HBasicBlock*>* worklist, in AddToListForLinearization()
41 HBasicBlock* block) { in AddToListForLinearization()
45 HBasicBlock* current = *insert_pos; in AddToListForLinearization()
58 static bool IsLinearOrderWellFormed(const HGraph* graph, ArrayRef<HBasicBlock*> linear_order) { in IsLinearOrderWellFormed()
59 for (HBasicBlock* header : graph->GetBlocks()) { in IsLinearOrderWellFormed()
66 for (HBasicBlock* block : linear_order) { in IsLinearOrderWellFormed()
86 void LinearizeGraphInternal(const HGraph* graph, ArrayRef<HBasicBlock*> linear_order) { in LinearizeGraphInternal()
100 for (HBasicBlock* block : graph->GetReversePostOrder()) { in LinearizeGraphInternal()
111 ScopedArenaVector<HBasicBlock*> worklist(allocator.Adapter(kArenaAllocLinearOrder)); in LinearizeGraphInternal()
115 HBasicBlock* current = worklist.back(); in LinearizeGraphInternal()
[all …]
H A Doptimizing_unit_test.h151 HBasicBlock* blk = new (alloc) HBasicBlock(graph_); in AdjacencyListGraph()
314 HBasicBlock* AddNewBlock() { in AddNewBlock()
315 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph_); in AddNewBlock()
546 HBasicBlock* entry_block_;
547 HBasicBlock* return_block_;
548 HBasicBlock* exit_block_;
690 std::variant<std::nullopt_t, HBasicBlock*, std::initializer_list<HBasicBlock*>> blks =
697 for (HBasicBlock* blk : std::get<std::initializer_list<HBasicBlock*>>(blks)) {
711 std::variant<std::nullopt_t, HBasicBlock*, std::initializer_list<HBasicBlock*>> blks =
720 for (HBasicBlock* blk : std::get<std::initializer_list<HBasicBlock*>>(blks)) {
[all …]
H A Dexecution_subgraph.cc63 for (HBasicBlock* pred : to_remove->GetPredecessors()) { in RemoveBlock()
114 const HBasicBlock* cur_block = graph_->GetEntryBlock(); in Prune()
117 auto push_block = [&](const HBasicBlock* blk) { in Prune()
223 for (const HBasicBlock* blk : graph_->GetBlocks()) { in Prune()
245 for (const HBasicBlock* blk : graph_->GetBlocks()) { in RemoveConcavity()
281 const HBasicBlock* cur = worklist.front(); in RecalculateExcludedCohort()
293 for (const HBasicBlock* succ : cur->GetSuccessors()) { in RecalculateExcludedCohort()
301 auto is_external = [&](const HBasicBlock* ext) -> bool { in RecalculateExcludedCohort()
304 for (const HBasicBlock* blk : cohort.Blocks()) { in RecalculateExcludedCohort()
326 for (const HBasicBlock* b : arr) { in Dump()
[all …]
H A Ddead_code_elimination.cc39 HBasicBlock* block = worklist.back(); in MarkReachableBlocks()
80 for (HBasicBlock* successor : live_successors) { in MarkReachableBlocks()
149 static bool RemoveNonNullControlDependences(HBasicBlock* block, HBasicBlock* throws) { in RemoveNonNullControlDependences()
166 HBasicBlock* not_throws = nullptr; in RemoveNonNullControlDependences()
188 HBasicBlock* user_block = user->GetBlock(); in RemoveNonNullControlDependences()
234 HBasicBlock* exit = graph_->GetExitBlock(); in SimplifyAlwaysThrows()
252 HBasicBlock* pred = block->GetSinglePredecessor(); in SimplifyAlwaysThrows()
253 HBasicBlock* succ = block->GetSingleSuccessor(); in SimplifyAlwaysThrows()
369 HBasicBlock* successor_to_update = nullptr; in SimplifyIfs()
462 for (HBasicBlock* block : graph_->GetPostOrder()) { in RemoveDeadBlocks()
[all …]
H A Dlicm_test.cc50 entry_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop()
52 loop_header_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop()
53 loop_body_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop()
54 return_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop()
55 exit_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop()
102 HBasicBlock* entry_;
103 HBasicBlock* loop_preheader_;
104 HBasicBlock* loop_header_;
105 HBasicBlock* loop_body_;
106 HBasicBlock* return_;
[all …]
H A Dgvn.cc372 void VisitBasicBlock(HBasicBlock* block);
378 ValueSet* FindSetFor(HBasicBlock* block) const { in FindSetFor()
384 void AbandonSetFor(HBasicBlock* block) { in AbandonSetFor()
392 bool WillBeReferencedAgain(HBasicBlock* block) const;
397 HBasicBlock* FindVisitedBlockWithRecyclableSet(HBasicBlock* block,
418 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in Run()
424 void GlobalValueNumberer::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock()
434 HBasicBlock* dominator = block->GetDominator(); in VisitBasicBlock()
476 for (HBasicBlock* predecessor : predecessors) { in VisitBasicBlock()
546 HBasicBlock* block, const ValueSet& reference_set) const { in FindVisitedBlockWithRecyclableSet()
[all …]
H A Dblock_builder.h45 HBasicBlock* GetBlockAt(uint32_t dex_pc) const { return branch_targets_[dex_pc]; } in GetBlockAt()
51 HBasicBlock* MaybeCreateBlockAt(uint32_t dex_pc);
56 HBasicBlock* MaybeCreateBlockAt(uint32_t semantic_dex_pc, uint32_t store_dex_pc);
72 bool MightHaveLiveNormalPredecessors(HBasicBlock* catch_block);
81 ScopedArenaVector<HBasicBlock*> branch_targets_;
82 ScopedArenaVector<HBasicBlock*> throwing_blocks_;
H A Dloop_optimization.h173 bool ShouldVectorize(LoopNode* node, HBasicBlock* block, int64_t trip_count);
174 void Vectorize(LoopNode* node, HBasicBlock* block, HBasicBlock* exit, int64_t trip_count);
176 HBasicBlock* block,
177 HBasicBlock* new_preheader,
255 bool TrySetSimpleLoopHeader(HBasicBlock* block, /*out*/ HPhi** main_phi);
257 bool IsEmptyBody(HBasicBlock* block);
266 HBasicBlock* block);
269 HBasicBlock* block,
341 HBasicBlock* vector_preheader_; // preheader of the new loop
342 HBasicBlock* vector_header_; // header of the new loop
[all …]
H A Dcodegen_test.cc417 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
422 HBasicBlock* first_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
431 HBasicBlock* then_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
432 HBasicBlock* else_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
433 HBasicBlock* exit_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
483 HBasicBlock* code_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
485 HBasicBlock* exit_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
533 HBasicBlock* if_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
610 HBasicBlock* entry_block = new (GetAllocator()) HBasicBlock(graph); in TestComparison()
615 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in TestComparison()
[all …]
H A Dload_store_analysis_test.cc65 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
148 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
229 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
323 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
535 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
654 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
855 HBasicBlock* left = blks.Get("left"); in TEST_F()
857 HBasicBlock* exit = blks.Get("exit"); in TEST_F()
964 HBasicBlock* left = blks.Get("left"); in TEST_F()
966 HBasicBlock* exit = blks.Get("exit"); in TEST_F()
[all …]
H A Dcha_guard_optimization.cc49 void VisitBasicBlock(HBasicBlock* block) override;
75 void CHAGuardVisitor::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock()
89 HBasicBlock* block = flag->GetBlock(); in RemoveGuard()
129 HBasicBlock* dominator = flag->GetBlock(); in OptimizeWithDominatingGuard()
130 HBasicBlock* receiver_def_block = receiver->GetBlock(); in OptimizeWithDominatingGuard()
181 HBasicBlock* block = flag->GetBlock(); in HoistGuard()
197 HBasicBlock* pre_header = loop_info->GetPreHeader(); in HoistGuard()
249 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in Run()
H A Dregister_allocator_test.cc492 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in BuildIfElseWithPhi()
499 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in BuildIfElseWithPhi()
514 HBasicBlock* then = new (GetAllocator()) HBasicBlock(graph); in BuildIfElseWithPhi()
515 HBasicBlock* else_ = new (GetAllocator()) HBasicBlock(graph); in BuildIfElseWithPhi()
516 HBasicBlock* join = new (GetAllocator()) HBasicBlock(graph); in BuildIfElseWithPhi()
642 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in BuildFieldReturn()
649 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in BuildFieldReturn()
666 HBasicBlock* exit = new (GetAllocator()) HBasicBlock(graph); in BuildFieldReturn()
718 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in BuildTwoSubs()
728 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in BuildTwoSubs()
[all …]
H A Dinduction_var_range.h103 HBasicBlock* block,
113 HInstruction* GenerateTakenTest(HInstruction* context, HGraph* graph, HBasicBlock* block);
127 HInstruction* GenerateLastValue(HInstruction* instruction, HGraph* graph, HBasicBlock* block);
190 HInstruction* GenerateTripCount(HLoopInformation* loop, HGraph* graph, HBasicBlock* block);
293 HBasicBlock* block,
304 HBasicBlock* block,
310 HBasicBlock* block,
316 HBasicBlock* block,
322 HBasicBlock* block,
329 HBasicBlock* block,

12345