/aosp12/art/compiler/optimizing/ |
H A 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); 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 D | loop_optimization_test.cc | 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_; 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 D | superblock_cloner.h | 37 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 D | superblock_cloner_test.cc | 63 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 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() 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 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() 217 HBasicBlock* exit = new (GetAllocator()) HBasicBlock(graph); in TEST_F() [all …]
|
H A D | nodes.cc | 523 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 D | block_builder.cc | 53 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 D | superblock_cloner.cc | 294 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 D | nodes_test.cc | 61 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 D | execution_subgraph.h | 62 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 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_;
|
H A 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 …]
|
H A D | optimizing_unit_test.h | 151 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 D | execution_subgraph.cc | 63 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 D | dead_code_elimination.cc | 39 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 D | licm_test.cc | 50 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 D | gvn.cc | 372 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 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); 72 bool MightHaveLiveNormalPredecessors(HBasicBlock* catch_block); 81 ScopedArenaVector<HBasicBlock*> branch_targets_; 82 ScopedArenaVector<HBasicBlock*> throwing_blocks_;
|
H A D | loop_optimization.h | 173 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 D | codegen_test.cc | 417 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 D | load_store_analysis_test.cc | 65 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 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()
|
H A D | register_allocator_test.cc | 492 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 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,
|