Home
last modified time | relevance | path

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

12345

/art/compiler/optimizing/
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);
36 HBasicBlock* GraphTest::CreateIfBlock(HGraph* graph) { in CreateIfBlock()
37 HBasicBlock* if_block = new (GetAllocator()) HBasicBlock(graph); in CreateIfBlock()
47 HBasicBlock* GraphTest::CreateGotoBlock(HGraph* graph) { in CreateGotoBlock()
48 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in CreateGotoBlock()
55 HBasicBlock* GraphTest::CreateEntryBlock(HGraph* graph) { in CreateEntryBlock()
[all …]
Dsuperblock_cloner.h37 HEdge(HBasicBlock* from, HBasicBlock* to) : from_(from->GetBlockId()), to_(to->GetBlockId()) { in HEdge()
79 HBasicBlock* block_from = graph->GetBlocks()[from]; in IsEdgeValid()
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()
196 HBasicBlock* block = bb_map_->Get(orig_block); in GetBlockCopy()
214 bool IsInOrigBBSet(const HBasicBlock* block) const { in IsInOrigBBSet()
226 void SearchForSubgraphExits(ArenaVector<HBasicBlock*>* exits) const;
293 void RemapOrigInternalOrIncomingEdge(HBasicBlock* orig_block, HBasicBlock* orig_succ);
[all …]
Dloop_optimization_test.cc58 entry_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph()
59 return_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph()
60 exit_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph()
78 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_;
128 HBasicBlock* return_block_;
129 HBasicBlock* exit_block_;
150 HBasicBlock* b = entry_block_; in TEST_F()
[all …]
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_;
Dsuperblock_cloner_test.cc43 void CreateBasicLoopControlFlow(HBasicBlock* position, in CreateBasicLoopControlFlow()
44 HBasicBlock* successor, in CreateBasicLoopControlFlow()
45 /* out */ HBasicBlock** header_p, in CreateBasicLoopControlFlow()
46 /* out */ HBasicBlock** body_p) { in CreateBasicLoopControlFlow()
47 HBasicBlock* loop_preheader = AddNewBlock(); in CreateBasicLoopControlFlow()
48 HBasicBlock* loop_header = AddNewBlock(); in CreateBasicLoopControlFlow()
49 HBasicBlock* loop_body = AddNewBlock(); in CreateBasicLoopControlFlow()
63 void CreateBasicLoopDataFlow(HBasicBlock* loop_header, HBasicBlock* loop_body) { in CreateBasicLoopDataFlow()
117 HBasicBlock* header = nullptr; in TEST_F()
118 HBasicBlock* loop_body = nullptr; in TEST_F()
[all …]
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()
215 HBasicBlock* loop_header = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
[all …]
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 …]
Dbounds_check_elimination_test.cc67 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
80 HBasicBlock* block1 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
88 HBasicBlock* block2 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
101 HBasicBlock* block3 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
112 HBasicBlock* block4 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
125 HBasicBlock* block5 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
138 HBasicBlock* exit = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
164 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
178 HBasicBlock* block1 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
186 HBasicBlock* block2 = new (GetAllocator()) HBasicBlock(graph_); in TEST_F()
[all …]
Dblock_builder.cc47 HBasicBlock* HBasicBlockBuilder::MaybeCreateBlockAt(uint32_t dex_pc) { in MaybeCreateBlockAt()
51 HBasicBlock* HBasicBlockBuilder::MaybeCreateBlockAt(uint32_t semantic_dex_pc, in MaybeCreateBlockAt()
53 HBasicBlock* block = branch_targets_[store_dex_pc]; in MaybeCreateBlockAt()
55 block = new (allocator_) HBasicBlock(graph_, semantic_dex_pc); in MaybeCreateBlockAt()
147 HBasicBlock* block = graph_->GetEntryBlock(); in ConnectBasicBlocks()
159 HBasicBlock* next_block = GetBlockAt(dex_pc); in ConnectBasicBlocks()
201 HBasicBlock* next_case_block = GetBlockAt(next_case_dex_pc); in ConnectBasicBlocks()
226 HBasicBlock* block, in GetTryItem()
239 const ScopedArenaSafeMap<uint32_t, HBasicBlock*>& catch_blocks) { in LinkToCatchBlocks()
247 bool HBasicBlockBuilder::MightHaveLiveNormalPredecessors(HBasicBlock* catch_block) { in MightHaveLiveNormalPredecessors()
[all …]
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_;
Dnodes.cc49 void HGraph::AddBlock(HBasicBlock* block) { in AddBlock()
69 ScopedArenaVector<HBasicBlock*> worklist(allocator.Adapter(kArenaAllocGraphBuilder)); in FindBackEdges()
77 HBasicBlock* current = worklist.back(); in FindBackEdges()
83 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; in FindBackEdges()
147 HBasicBlock* block = blocks_[i]; in RemoveInstructionsAsUsersFromDeadBlocks()
162 HBasicBlock* block = blocks_[i]; in RemoveDeadBlocks()
165 for (HBasicBlock* successor : block->GetSuccessors()) { in RemoveDeadBlocks()
224 for (HBasicBlock* block : GetReversePostOrder()) { in ClearDominanceInformation()
232 for (HBasicBlock* block : GetReversePostOrder()) { in ClearLoopInformation()
237 void HBasicBlock::ClearDominanceInformation() { in ClearDominanceInformation()
[all …]
Dsuperblock_cloner.cc90 for (HBasicBlock* block : graph->GetPostOrder()) { in OrderLoopsHeadersPredecessors()
101 static void TraverseSubgraphForConnectivity(HBasicBlock* block, HBasicBlockSet* bb_set) { in TraverseSubgraphForConnectivity()
105 for (HBasicBlock* succ : block->GetSuccessors()) { in TraverseSubgraphForConnectivity()
165 void SuperblockCloner::RemapOrigInternalOrIncomingEdge(HBasicBlock* orig_block, in RemapOrigInternalOrIncomingEdge()
166 HBasicBlock* orig_succ) { in RemapOrigInternalOrIncomingEdge()
168 HBasicBlock* copy_succ = GetBlockCopy(orig_succ); in RemapOrigInternalOrIncomingEdge()
199 void SuperblockCloner::AddCopyInternalEdge(HBasicBlock* orig_block, in AddCopyInternalEdge()
200 HBasicBlock* orig_succ) { in AddCopyInternalEdge()
202 HBasicBlock* copy_block = GetBlockCopy(orig_block); in AddCopyInternalEdge()
203 HBasicBlock* copy_succ = GetBlockCopy(orig_succ); in AddCopyInternalEdge()
[all …]
Dnodes_test.cc34 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
42 HBasicBlock* first_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
49 HBasicBlock* exit_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
74 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
99 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
117 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
Dlicm_test.cc50 entry_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop()
51 loop_preheader_ = 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_;
[all …]
Dside_effects_analysis.cc29 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in Run()
40 for (HBasicBlock* block : graph_->GetPostOrder()) { in Run()
59 HBasicBlock* pre_header = block->GetLoopInformation()->GetPreHeader(); in Run()
75 SideEffects SideEffectsAnalysis::GetLoopEffects(HBasicBlock* block) const { in GetLoopEffects()
80 SideEffects SideEffectsAnalysis::GetBlockEffects(HBasicBlock* block) const { in GetBlockEffects()
Dlinear_order.h26 void LinearizeGraphInternal(const HGraph* graph, ArrayRef<HBasicBlock*> linear_order);
41 static_assert(std::is_same<HBasicBlock*, typename Vector::value_type>::value, in LinearizeGraph()
46 LinearizeGraphInternal(graph, ArrayRef<HBasicBlock*>(*linear_order)); in LinearizeGraph()
Dregister_allocation_resolver.h28 class HBasicBlock; variable
64 void ConnectSplitSiblings(LiveInterval* interval, HBasicBlock* from, HBasicBlock* to) const;
67 void InsertParallelMoveAtExitOf(HBasicBlock* block,
71 void InsertParallelMoveAtEntryOf(HBasicBlock* block,
Ddead_code_elimination.cc32 ScopedArenaVector<HBasicBlock*> worklist(allocator.Adapter(kArenaAllocDCE)); in MarkReachableBlocks()
39 HBasicBlock* block = worklist.back(); in MarkReachableBlocks()
44 ArrayRef<HBasicBlock* const> live_successors(block->GetSuccessors()); in MarkReachableBlocks()
80 for (HBasicBlock* successor : live_successors) { in MarkReachableBlocks()
90 void HDeadCodeElimination::MaybeRecordDeadBlock(HBasicBlock* block) { in MaybeRecordDeadBlock()
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()
242 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in SimplifyAlwaysThrows()
[all …]
Dloop_optimization.h172 bool ShouldVectorize(LoopNode* node, HBasicBlock* block, int64_t trip_count);
173 void Vectorize(LoopNode* node, HBasicBlock* block, HBasicBlock* exit, int64_t trip_count);
175 HBasicBlock* block,
176 HBasicBlock* new_preheader,
254 bool TrySetSimpleLoopHeader(HBasicBlock* block, /*out*/ HPhi** main_phi);
256 bool IsEmptyBody(HBasicBlock* block);
265 HBasicBlock* block);
268 HBasicBlock* block,
335 HBasicBlock* vector_preheader_; // preheader of the new loop
336 HBasicBlock* vector_header_; // header of the new loop
[all …]
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()
427 const ArenaVector<HBasicBlock*>& predecessors = block->GetPredecessors(); in VisitBasicBlock()
434 HBasicBlock* dominator = block->GetDominator(); in VisitBasicBlock()
447 HBasicBlock* recyclable = FindVisitedBlockWithRecyclableSet(block, *dominator_set); in VisitBasicBlock()
[all …]
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()
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()
456 HBasicBlock* block = graph_in->GetEntryBlock()->GetSuccessors()[0]; in TEST_F()
479 HBasicBlock* entry_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()
502 HBasicBlock* block = graph_in->GetEntryBlock()->GetSuccessors()[0]; in TEST_F()
[all …]
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,
Dgraph_checker_test.cc38 HBasicBlock* entry_block = new (GetAllocator()) HBasicBlock(graph); in CreateSimpleCFG()
42 HBasicBlock* exit_block = new (GetAllocator()) HBasicBlock(graph); in CreateSimpleCFG()
121 HBasicBlock* exit_block = graph->GetExitBlock(); in TEST_F()
Dpretty_printer.h73 void VisitBasicBlock(HBasicBlock* block) override { in VisitBasicBlock()
76 const ArenaVector<HBasicBlock*>& predecessors = block->GetPredecessors(); in VisitBasicBlock()
85 const ArenaVector<HBasicBlock*>& successors = block->GetSuccessors(); in VisitBasicBlock()
127 void VisitBasicBlock(HBasicBlock* block) override { in VisitBasicBlock()
142 HBasicBlock* current_block_;

12345