/art/compiler/optimizing/ |
D | graph_test.cc | 29 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 …]
|
D | loop_optimization_test.cc | 42 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 …]
|
D | superblock_cloner.h | 36 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 …]
|
D | superblock_cloner_test.cc | 35 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 …]
|
D | common_dominator.h | 30 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_;
|
D | gvn_test.cc | 31 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 …]
|
D | bounds_check_elimination_test.cc | 67 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 …]
|
D | linear_order.cc | 40 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 …]
|
D | nodes.cc | 50 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 …]
|
D | block_builder.h | 45 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_;
|
D | block_builder.cc | 47 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 …]
|
D | superblock_cloner.cc | 90 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 …]
|
D | nodes_test.cc | 34 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()
|
D | licm_test.cc | 50 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 …]
|
D | select_generator_test.cc | 30 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()
|
D | dead_code_elimination.cc | 32 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 …]
|
D | loop_optimization.h | 172 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 …]
|
D | side_effects_analysis.cc | 29 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()
|
D | codegen_test.cc | 423 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 …]
|
D | register_allocation_resolver.h | 28 class HBasicBlock; variable 64 void ConnectSplitSiblings(LiveInterval* interval, HBasicBlock* from, HBasicBlock* to) const; 67 void InsertParallelMoveAtExitOf(HBasicBlock* block, 71 void InsertParallelMoveAtEntryOf(HBasicBlock* block,
|
D | gvn.cc | 357 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 …]
|
D | linear_order.h | 26 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()
|
D | cha_guard_optimization.cc | 49 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()
|
D | induction_var_range.h | 103 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,
|
D | select_generator.cc | 37 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()
|