Home
last modified time | relevance | path

Searched refs:HBasicBlock (Results 1 – 25 of 106) 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 …]
Dloop_optimization_test.cc42 entry_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph()
43 return_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph()
44 exit_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph()
62 HBasicBlock* AddLoop(HBasicBlock* position, HBasicBlock* successor) { in AddLoop()
63 HBasicBlock* header = new (GetAllocator()) HBasicBlock(graph_); in AddLoop()
64 HBasicBlock* body = new (GetAllocator()) HBasicBlock(graph_); in AddLoop()
108 HBasicBlock* entry_block_;
109 HBasicBlock* return_block_;
110 HBasicBlock* exit_block_;
131 HBasicBlock* b = entry_block_; in TEST_F()
[all …]
Dsuperblock_cloner.h36 HEdge(HBasicBlock* from, HBasicBlock* to) : from_(from->GetBlockId()), to_(to->GetBlockId()) { in HEdge()
78 HBasicBlock* block_from = graph->GetBlocks()[from]; in IsEdgeValid()
79 HBasicBlock* block_to = graph->GetBlocks()[to]; in IsEdgeValid()
137 using HBasicBlockMap = ArenaSafeMap<HBasicBlock*, HBasicBlock*>;
181 HBasicBlock* CloneBasicBlock(const HBasicBlock* orig_block);
193 HBasicBlock* GetBlockCopy(HBasicBlock* orig_block) const { in GetBlockCopy()
194 HBasicBlock* block = bb_map_->Get(orig_block); in GetBlockCopy()
212 bool IsInOrigBBSet(const HBasicBlock* block) const { in IsInOrigBBSet()
224 void SearchForSubgraphExits(ArenaVector<HBasicBlock*>* exits) const;
291 void RemapOrigInternalOrIncomingEdge(HBasicBlock* orig_block, HBasicBlock* orig_succ);
[all …]
Dsuperblock_cloner_test.cc35 void CreateBasicLoopControlFlow(HBasicBlock* position, in CreateBasicLoopControlFlow()
36 HBasicBlock* successor, in CreateBasicLoopControlFlow()
37 /* out */ HBasicBlock** header_p, in CreateBasicLoopControlFlow()
38 /* out */ HBasicBlock** body_p) { in CreateBasicLoopControlFlow()
39 HBasicBlock* loop_preheader = new (GetAllocator()) HBasicBlock(graph_); in CreateBasicLoopControlFlow()
40 HBasicBlock* loop_header = new (GetAllocator()) HBasicBlock(graph_); in CreateBasicLoopControlFlow()
41 HBasicBlock* loop_body = new (GetAllocator()) HBasicBlock(graph_); in CreateBasicLoopControlFlow()
59 void CreateBasicLoopDataFlow(HBasicBlock* loop_header, HBasicBlock* loop_body) { in CreateBasicLoopDataFlow()
113 HBasicBlock* header = nullptr; in TEST_F()
114 HBasicBlock* loop_body = nullptr; 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_;
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 …]
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 …]
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 …]
Dnodes.cc50 void HGraph::AddBlock(HBasicBlock* block) { in AddBlock()
70 ScopedArenaVector<HBasicBlock*> worklist(allocator.Adapter(kArenaAllocGraphBuilder)); in FindBackEdges()
78 HBasicBlock* current = worklist.back(); in FindBackEdges()
84 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; in FindBackEdges()
148 HBasicBlock* block = blocks_[i]; in RemoveInstructionsAsUsersFromDeadBlocks()
163 HBasicBlock* block = blocks_[i]; in RemoveDeadBlocks()
166 for (HBasicBlock* successor : block->GetSuccessors()) { in RemoveDeadBlocks()
225 for (HBasicBlock* block : GetReversePostOrder()) { in ClearDominanceInformation()
233 for (HBasicBlock* block : GetReversePostOrder()) { in ClearLoopInformation()
238 void HBasicBlock::ClearDominanceInformation() { in ClearDominanceInformation()
[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);
67 bool MightHaveLiveNormalPredecessors(HBasicBlock* catch_block);
76 ScopedArenaVector<HBasicBlock*> branch_targets_;
77 ScopedArenaVector<HBasicBlock*> throwing_blocks_;
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 …]
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 …]
Dselect_generator_test.cc30 HBasicBlock* if_block = new (GetAllocator()) HBasicBlock(graph_); in ConstructBasicGraphForSelect()
31 HBasicBlock* then_block = new (GetAllocator()) HBasicBlock(graph_); in ConstructBasicGraphForSelect()
32 HBasicBlock* else_block = new (GetAllocator()) HBasicBlock(graph_); in ConstructBasicGraphForSelect()
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,
246 bool TrySetSimpleLoopHeader(HBasicBlock* block, /*out*/ HPhi** main_phi);
248 bool IsEmptyBody(HBasicBlock* block);
257 HBasicBlock* block);
260 HBasicBlock* block,
324 HBasicBlock* vector_preheader_; // preheader of the new loop
325 HBasicBlock* vector_header_; // header of the new loop
[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()
Dcodegen_test.cc423 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
428 HBasicBlock* first_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
437 HBasicBlock* then_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
438 HBasicBlock* else_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
439 HBasicBlock* exit_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
460 HBasicBlock* block = graph_in->GetEntryBlock()->GetSuccessors()[0]; in TEST_F()
484 HBasicBlock* entry_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
488 HBasicBlock* code_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
490 HBasicBlock* exit_block = new (GetAllocator()) HBasicBlock(graph); in TEST_F()
507 HBasicBlock* block = graph_in->GetEntryBlock()->GetSuccessors()[0]; in TEST_F()
[all …]
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,
Dgvn.cc357 void VisitBasicBlock(HBasicBlock* block);
363 ValueSet* FindSetFor(HBasicBlock* block) const { in FindSetFor()
369 void AbandonSetFor(HBasicBlock* block) { in AbandonSetFor()
377 bool WillBeReferencedAgain(HBasicBlock* block) const;
382 HBasicBlock* FindVisitedBlockWithRecyclableSet(HBasicBlock* block,
403 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in Run()
409 void GlobalValueNumberer::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock()
412 const ArenaVector<HBasicBlock*>& predecessors = block->GetPredecessors(); in VisitBasicBlock()
419 HBasicBlock* dominator = block->GetDominator(); in VisitBasicBlock()
432 HBasicBlock* recyclable = FindVisitedBlockWithRecyclableSet(block, *dominator_set); in VisitBasicBlock()
[all …]
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()
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()
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,
Dselect_generator.cc37 static bool IsSimpleBlock(HBasicBlock* block) { in IsSimpleBlock()
70 static bool BlocksMergeTogether(HBasicBlock* block1, HBasicBlock* block2) { in BlocksMergeTogether()
76 static HPhi* GetSingleChangedPhi(HBasicBlock* block, size_t index1, size_t index2) { in GetSingleChangedPhi()
104 for (HBasicBlock* block : graph_->GetPostOrder()) { in Run()
109 HBasicBlock* true_block = if_instruction->IfTrueSuccessor(); in Run()
110 HBasicBlock* false_block = if_instruction->IfFalseSuccessor(); in Run()
118 HBasicBlock* merge_block = true_block->GetSingleSuccessor(); in Run()

12345