/art/compiler/optimizing/ |
D | licm_test.cc | 43 graph_ = CreateGraph(); in LICMTest() 51 entry_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop() 52 loop_preheader_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop() 53 loop_header_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop() 54 loop_body_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop() 55 return_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop() 56 exit_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoop() 58 graph_->AddBlock(entry_); in BuildLoop() 59 graph_->AddBlock(loop_preheader_); in BuildLoop() 60 graph_->AddBlock(loop_header_); in BuildLoop() [all …]
|
D | loop_optimization_test.cc | 35 graph_ = CreateGraph(); in SetUp() 37 iva_ = new (GetAllocator()) HInductionVarAnalysis(graph_); in SetUp() 40 codegen_ = CodeGenerator::Create(graph_, *compiler_options_); in SetUp() 43 graph_, *codegen_.get(), iva_, /* stats= */ nullptr); in SetUp() 49 graph_ = nullptr; in TearDown() 58 graph_->SetNumberOfVRegs(1); in BuildGraph() 59 entry_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph() 60 return_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph() 61 exit_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph() 62 graph_->AddBlock(entry_block_); in BuildGraph() [all …]
|
D | builder.cc | 44 : graph_(graph), in HGraphBuilder() 57 : graph_(graph), in HGraphBuilder() 101 DCHECK(graph_->GetBlocks().empty()); in BuildGraph() 103 graph_->SetNumberOfVRegs(code_item_accessor_.RegistersSize()); in BuildGraph() 104 graph_->SetNumberOfInVRegs(code_item_accessor_.InsSize()); in BuildGraph() 105 graph_->SetMaximumNumberOfOutVRegs(code_item_accessor_.OutsSize()); in BuildGraph() 108 ScopedArenaAllocator local_allocator(graph_->GetArenaStack()); in BuildGraph() 109 HBasicBlockBuilder block_builder(graph_, dex_file_, code_item_accessor_, &local_allocator); in BuildGraph() 110 SsaBuilder ssa_builder(graph_, in BuildGraph() 114 HInstructionBuilder instruction_builder(graph_, in BuildGraph() [all …]
|
D | nodes_test.cc | 40 AdjacencyListGraph alg(graph_, in TEST_F() 57 graph_->ClearDominanceInformation(); in TEST_F() 58 graph_->BuildDominatorTree(); in TEST_F() 62 std::all_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F() 63 return b == graph_->GetEntryBlock() || b == nullptr || b->GetDominator() != nullptr; in TEST_F() 66 std::any_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F() 71 graph_->ClearLoopInformation(); in TEST_F() 72 graph_->ClearDominanceInformation(); in TEST_F() 76 std::none_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F() 80 std::all_of(graph_->GetBlocks().begin(), graph_->GetBlocks().end(), [&](HBasicBlock* b) { in TEST_F() [all …]
|
D | load_store_analysis_test.cc | 52 return AdjacencyListGraph(graph_, GetAllocator(), entry_name, exit_name, adj); in SetupFromAdjacencyList() 56 return ExecutionSubgraphTestHelper::CalculateValidity(graph_, esg); in IsValidSubgraph() 60 return ExecutionSubgraphTestHelper::CalculateValidity(graph_, &esg); in IsValidSubgraph() 68 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F() 69 graph_->AddBlock(entry); in TEST_F() 70 graph_->SetEntryBlock(entry); in TEST_F() 83 graph_->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); in TEST_F() 85 graph_->GetDexFile(), dex::TypeIndex(1), 1, DataType::Type::kInt32); in TEST_F() 86 HInstruction* c1 = graph_->GetIntConstant(1); in TEST_F() 87 HInstruction* c2 = graph_->GetIntConstant(2); in TEST_F() [all …]
|
D | bounds_check_elimination_test.cc | 38 BoundsCheckEliminationTest() : graph_(CreateGraph()) { in BoundsCheckEliminationTest() 39 graph_->SetHasBoundsChecks(true); in BoundsCheckEliminationTest() 45 graph_->BuildDominatorTree(); in RunBCE() 47 InstructionSimplifier(graph_, /* codegen= */ nullptr).Run(); in RunBCE() 49 SideEffectsAnalysis side_effects(graph_); in RunBCE() 52 GVNOptimization(graph_, side_effects).Run(); in RunBCE() 54 HInductionVarAnalysis induction(graph_); in RunBCE() 57 BoundsCheckElimination(graph_, side_effects, &induction).Run(); in RunBCE() 60 HGraph* graph_; member in art::BoundsCheckEliminationTest 68 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TEST_F() [all …]
|
D | ssa_liveness_analysis_test.cc | 35 graph_ = CreateGraph(); in SetUp() 37 codegen_ = CodeGenerator::Create(graph_, *compiler_options_); in SetUp() 40 entry_ = new (GetAllocator()) HBasicBlock(graph_); in SetUp() 41 graph_->AddBlock(entry_); in SetUp() 42 graph_->SetEntryBlock(entry_); in SetUp() 54 HGraph* graph_; member in art::SsaLivenessAnalysisTest 62 graph_->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kInt32); in TEST_F() 70 graph_->BuildDominatorTree(); in TEST_F() 71 SsaLivenessAnalysis ssa_analysis(graph_, codegen_.get(), GetScopedAllocator()); in TEST_F() 82 graph_->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); in TEST_F() [all …]
|
D | block_builder.cc | 32 graph_(graph), in HBasicBlockBuilder() 55 block = new (allocator_) HBasicBlock(graph_, semantic_dex_pc); in MaybeCreateBlockAt() 147 HBasicBlock* block = graph_->GetEntryBlock(); in ConnectBasicBlocks() 148 graph_->AddBlock(block); in ConnectBasicBlocks() 170 graph_->AddBlock(block); in ConnectBasicBlocks() 192 block->AddSuccessor(graph_->GetExitBlock()); in ConnectBasicBlocks() 204 graph_->AddBlock(block); in ConnectBasicBlocks() 221 graph_->AddBlock(graph_->GetExitBlock()); in ConnectBasicBlocks() 250 DCHECK(!graph_->GetEntryBlock()->GetSuccessors().empty()) in MightHaveLiveNormalPredecessors() 287 for (HBasicBlock* block : graph_->GetBlocks()) { in InsertTryBoundaryBlocks() [all …]
|
D | execution_subgraph.cc | 32 : graph_(graph), in ExecutionSubgraph() 34 allowed_successors_(graph_->GetBlocks().size(), in ExecutionSubgraph() 38 allocator_, graph_->GetBlocks().size(), /*expandable=*/ false, kArenaAllocLSA), 85 ScopedArenaAllocator temporaries(graph_->GetArenaStack()); in Prune() 87 graph_->GetBlocks().size(), temporaries.Adapter(kArenaAllocLSA)); in Prune() 94 const size_t num_blocks = graph_->GetBlocks().size(); in Prune() 114 const HBasicBlock* cur_block = graph_->GetEntryBlock(); in Prune() 136 DCHECK_GE(last_succ_seen[graph_->GetEntryBlock()->GetBlockId()], in Prune() 137 static_cast<ssize_t>(graph_->GetEntryBlock()->GetSuccessors().size())); in Prune() 140 const HBasicBlock* last = graph_->GetBlocks()[current_path.back()]; in Prune() [all …]
|
D | dead_code_elimination.cc | 251 HBasicBlock* exit = graph_->GetExitBlock(); in SimplifyAlwaysThrows() 252 if (!graph_->HasAlwaysThrowingInvokes() || exit == nullptr) { in SimplifyAlwaysThrows() 259 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in SimplifyAlwaysThrows() 314 graph_->ClearLoopInformation(); in SimplifyAlwaysThrows() 315 graph_->ClearDominanceInformation(); in SimplifyAlwaysThrows() 316 graph_->BuildDominatorTree(); in SimplifyAlwaysThrows() 329 for (HBasicBlock* block : graph_->GetPostOrder()) { in SimplifyIfs() 440 graph_->ClearLoopInformation(); in SimplifyIfs() 441 graph_->ClearDominanceInformation(); in SimplifyIfs() 442 graph_->BuildDominatorTree(); in SimplifyIfs() [all …]
|
D | execution_subgraph.h | 57 explicit BlockIdToBlockTransformer(const HGraph* graph) : graph_(graph) {} in BlockIdToBlockTransformer() 60 return graph_; in GetGraph() 64 DCHECK_LT(id, graph_->GetBlocks().size()) << graph_->PrettyMethod(); in GetBlock() 65 HBasicBlock* blk = graph_->GetBlocks()[id]; in GetBlock() 75 const HGraph* const graph_; 131 : graph_(graph), in ExcludedCohort() 132 entry_blocks_(allocator, graph_->GetBlocks().size(), false, kArenaAllocLSA), in ExcludedCohort() 133 exit_blocks_(allocator, graph_->GetBlocks().size(), false, kArenaAllocLSA), in ExcludedCohort() 134 blocks_(allocator, graph_->GetBlocks().size(), false, kArenaAllocLSA) {} in ExcludedCohort() 150 return Filter(MakeIterationRange(graph_->GetReversePostOrder()), in EntryBlocksReversePostOrder() [all …]
|
D | select_generator_test.cc | 32 AddParameter(new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in InitGraphAndParameters() 50 HParameterValue* bool_param = new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in ConstructBasicGraphForSelect() 55 HIntConstant* const1 = graph_->GetIntConstant(1); in ConstructBasicGraphForSelect() 71 graph_->BuildDominatorTree(); in CheckGraphAndTrySelectGenerator() 74 SideEffectsAnalysis side_effects(graph_); in CheckGraphAndTrySelectGenerator() 76 return HSelectGenerator(graph_, /*handles*/ nullptr, /*stats*/ nullptr).Run(); in CheckGraphAndTrySelectGenerator() 86 ArenaVector<HInstruction*> current_locals({parameters_[0], graph_->GetIntConstant(1)}, in TEST_F()
|
D | scheduler_test.cc | 71 SchedulerTest() : graph_(CreateGraph()) { } in SchedulerTest() 75 HBasicBlock* entry = new (GetAllocator()) HBasicBlock(graph_); in TestBuildDependencyGraphAndSchedule() 76 HBasicBlock* block1 = new (GetAllocator()) HBasicBlock(graph_); in TestBuildDependencyGraphAndSchedule() 77 graph_->AddBlock(entry); in TestBuildDependencyGraphAndSchedule() 78 graph_->AddBlock(block1); in TestBuildDependencyGraphAndSchedule() 79 graph_->SetEntryBlock(entry); in TestBuildDependencyGraphAndSchedule() 96 HInstruction* array = new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in TestBuildDependencyGraphAndSchedule() 100 HInstruction* c1 = graph_->GetIntConstant(1); in TestBuildDependencyGraphAndSchedule() 101 HInstruction* c2 = graph_->GetIntConstant(10); in TestBuildDependencyGraphAndSchedule() 135 graph_->GetArtMethod(), in TestBuildDependencyGraphAndSchedule() [all …]
|
D | inliner.cc | 140 } else if (graph_->IsDebuggable()) { in Run() 151 DCHECK(!graph_->HasAlwaysThrowingInvokes()); in Run() 155 if (outermost_graph_ == graph_) { in Run() 156 total_number_of_instructions_ = CountNumberOfInstructions(graph_); in Run() 175 ArenaVector<HBasicBlock*> blocks = graph_->GetReversePostOrder(); in Run() 213 return did_inline || graph_->HasAlwaysThrowingInvokes(); in Run() 488 if (outermost_graph_ == graph_) { in TryInline() 503 graph_->SetHasAlwaysThrowingInvokes(/* value= */ true); in TryInline() 655 ArtMethod* caller = graph_->GetArtMethod(); in GetInlineCacheJIT() 658 ProfilingInfo* profiling_info = graph_->GetProfilingInfo(); in GetInlineCacheJIT() [all …]
|
D | code_sinking.cc | 32 if (graph_->GetExitBlock() == nullptr) { in Run() 43 HBasicBlock* exit = graph_->GetExitBlock(); in UncommonBranchSinking() 330 ScopedArenaAllocator allocator(graph_->GetArenaStack()); in SinkCodeToUncommonBranch() 332 size_t number_of_instructions = graph_->GetCurrentInstructionId(); in SinkCodeToUncommonBranch() 336 ArenaBitVector post_dominated(&allocator, graph_->GetBlocks().size(), /* expandable= */ false); in SinkCodeToUncommonBranch() 349 for (HBasicBlock* block : graph_->GetPostOrder()) { in SinkCodeToUncommonBranch() 355 DCHECK_NE(block, graph_->GetExitBlock()) in SinkCodeToUncommonBranch() 405 for (size_t i = 0, e = graph_->GetBlocks().size(); i < e; ++i) { in SinkCodeToUncommonBranch() 407 finder.Update(graph_->GetBlocks()[i]); in SinkCodeToUncommonBranch() 408 AddInputs(graph_->GetBlocks()[i], processed_instructions, post_dominated, &worklist); in SinkCodeToUncommonBranch() [all …]
|
D | constant_folding_test.cc | 37 ConstantFoldingTest() : graph_(nullptr) { } in ConstantFoldingTest() 45 graph_ = CreateCFG(data, return_type); in TestCode() 56 ASSERT_NE(graph_, nullptr); in TestCodeOnReadyGraph() 58 StringPrettyPrinter printer_before(graph_); in TestCodeOnReadyGraph() 64 graph_, /* stats= */ nullptr, "constant_folding", /* use_all_optimizations= */ true); in TestCodeOnReadyGraph() 66 GraphChecker graph_checker_cf(graph_); in TestCodeOnReadyGraph() 70 StringPrettyPrinter printer_after_cf(graph_); in TestCodeOnReadyGraph() 75 check_after_cf(graph_); in TestCodeOnReadyGraph() 77 HDeadCodeElimination(graph_, /* stats= */ nullptr, "dead_code_elimination").Run(); in TestCodeOnReadyGraph() 78 GraphChecker graph_checker_dce(graph_); in TestCodeOnReadyGraph() [all …]
|
D | load_store_elimination_test.cc | 72 graph_->BuildDominatorTree(); in PerformLSE() 73 LoadStoreElimination lse(graph_, /*stats=*/nullptr); in PerformLSE() 81 graph_->ClearDominanceInformation(); in PerformLSEWithPartial() 93 graph_->ClearDominanceInformation(); in PerformLSENoPartial() 104 InstructionSimplifier simp(graph_, /*codegen=*/nullptr); in PerformSimplifications() 114 HInstruction* c1 = graph_->GetIntConstant(1); in CreateEntryBlockInstructions() 115 HInstruction* c4 = graph_->GetIntConstant(4); in CreateEntryBlockInstructions() 143 HInstruction* c0 = graph_->GetIntConstant(0); in CreateTestControlFlowGraph() 144 HInstruction* c1 = graph_->GetIntConstant(1); in CreateTestControlFlowGraph() 145 HInstruction* c128 = graph_->GetIntConstant(128); in CreateTestControlFlowGraph() [all …]
|
D | execution_subgraph_test.cc | 81 ExecutionSubgraphTest() : graph_(CreateGraph()) {} in ExecutionSubgraphTest() 86 return AdjacencyListGraph(graph_, GetAllocator(), entry_name, exit_name, adj); in SetupFromAdjacencyList() 90 return ExecutionSubgraphTestHelper::CalculateValidity(graph_, esg); in IsValidSubgraph() 94 return ExecutionSubgraphTestHelper::CalculateValidity(graph_, &esg); in IsValidSubgraph() 97 HGraph* graph_; member in art::ExecutionSubgraphTest 144 ASSERT_TRUE(ExecutionSubgraph::CanAnalyse(graph_)); in TEST_F() 145 ExecutionSubgraph esg(graph_, GetScopedAllocator()); in TEST_F() 231 ASSERT_TRUE(ExecutionSubgraph::CanAnalyse(graph_)); in TEST_F() 232 ExecutionSubgraph esg(graph_, GetScopedAllocator()); in TEST_F() 294 ASSERT_TRUE(ExecutionSubgraph::CanAnalyse(graph_)); in TEST_F() [all …]
|
D | superblock_cloner_test.cc | 38 AddParameter(new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in InitGraphAndParameters() 68 HIntConstant* const_0 = graph_->GetIntConstant(0); in CreateBasicLoopDataFlow() 69 HIntConstant* const_1 = graph_->GetIntConstant(1); in CreateBasicLoopDataFlow() 70 HIntConstant* const_128 = graph_->GetIntConstant(128); in CreateBasicLoopDataFlow() 105 graph_->SetHasBoundsChecks(true); in CreateBasicLoopDataFlow() 124 graph_->BuildDominatorTree(); in TEST_F() 128 CloneAndReplaceInstructionVisitor visitor(graph_); in TEST_F() 156 graph_->BuildDominatorTree(); in TEST_F() 160 arena, graph_->GetBlocks().size(), false, kArenaAllocSuperblockCloner); in TEST_F() 167 SuperblockCloner cloner(graph_, in TEST_F() [all …]
|
D | reference_type_propagation_test.cc | 43 ReferenceTypePropagationTestBase() : graph_(nullptr), propagation_(nullptr) { in ReferenceTypePropagationTestBase() 50 graph_ = CreateGraph(handles); in SetupPropagation() 52 ReferenceTypePropagation(graph_, Handle<mirror::DexCache>(), true, "test_prop"); in SetupPropagation() 58 return propagation_->MergeTypes(a, b, graph_->GetHandleCache()); in MergeTypes() 68 return ReferenceTypeInfo::Create(graph_->GetHandleCache()->GetObjectClassHandle(), is_exact); in ObjectType() 73 return ReferenceTypeInfo::Create(graph_->GetHandleCache()->GetStringClassHandle(), is_exact); in StringType() 77 HGraph* graph_; member in art::ReferenceTypePropagationTestBase 181 EXPECT_TRUE(graph_->GetInexactObjectRti().IsEqual(ObjectType(false))); in TEST_F() 289 AdjacencyListGraph alg(graph_, GetAllocator(), "start", "exit", edges); in RunVisitListTest() 292 HParameterValue(graph_->GetDexFile(), dex::TypeIndex(1), 1, DataType::Type::kReference); in RunVisitListTest() [all …]
|
D | ssa_builder.cc | 34 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in FixNullConstantType() 60 equality_instr->ReplaceInput(graph_->GetNullConstant(), int_operand == right ? 1 : 0); in FixNullConstantType() 67 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in EquivalentPhisCleanup() 89 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in FixEnvironmentPhis() 241 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in RunPrimitiveTypePropagation() 441 DCHECK(graph_->HasIrreducibleLoops()); in ReplaceUninitializedStringPhis() 454 if (graph_->IsDebuggable()) { in RemoveRedundantUninitializedStrings() 469 new_instance->ReplaceWith(graph_->GetNullConstant()); in RemoveRedundantUninitializedStrings() 516 DCHECK(!graph_->IsInSsaForm()); in BuildSsa() 529 SsaRedundantPhiElimination(graph_).Run(); in BuildSsa() [all …]
|
D | optimizing_unit_test.h | 150 const std::vector<Edge>& adj) : graph_(graph) { in AdjacencyListGraph() 152 HBasicBlock* blk = new (alloc) HBasicBlock(graph_); in AdjacencyListGraph() 153 graph_->AddBlock(blk); in AdjacencyListGraph() 158 graph_->SetEntryBlock(entry); in AdjacencyListGraph() 159 graph_->SetExitBlock(exit); in AdjacencyListGraph() 167 graph_->ClearReachabilityInformation(); in AdjacencyListGraph() 168 graph_->ComputeDominanceInformation(); in AdjacencyListGraph() 169 graph_->ComputeReachabilityInformation(); in AdjacencyListGraph() 207 return graph_->Dump(os, /* codegen_= */ nullptr, namer); in Dump() 211 HGraph* graph_; [all …]
|
D | side_effects_analysis.cc | 24 block_effects_.resize(graph_->GetBlocks().size()); in Run() 25 loop_effects_.resize(graph_->GetBlocks().size()); in Run() 29 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in Run() 40 for (HBasicBlock* block : graph_->GetPostOrder()) { in Run()
|
D | induction_var_analysis_test.cc | 46 graph_ = CreateGraph(); in InductionVarAnalysisTest() 54 loop_preheader_[d] = new (GetAllocator()) HBasicBlock(graph_); in BuildForLoop() 55 graph_->AddBlock(loop_preheader_[d]); in BuildForLoop() 56 loop_header_[d] = new (GetAllocator()) HBasicBlock(graph_); in BuildForLoop() 57 graph_->AddBlock(loop_header_[d]); in BuildForLoop() 62 loop_body_[d] = new (GetAllocator()) HBasicBlock(graph_); in BuildForLoop() 63 graph_->AddBlock(loop_body_[d]); in BuildForLoop() 78 graph_->SetNumberOfVRegs(n + 3); in BuildLoopNest() 81 entry_ = new (GetAllocator()) HBasicBlock(graph_); in BuildLoopNest() 82 graph_->AddBlock(entry_); in BuildLoopNest() [all …]
|
D | induction_var_range_test.cc | 36 : graph_(CreateGraph()), in InductionVarRangeTest() 37 iva_(new (GetAllocator()) HInductionVarAnalysis(graph_)), in InductionVarRangeTest() 62 graph_->SetNumberOfVRegs(1); in BuildGraph() 63 entry_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph() 64 exit_block_ = new (GetAllocator()) HBasicBlock(graph_); in BuildGraph() 65 graph_->AddBlock(entry_block_); in BuildGraph() 66 graph_->AddBlock(exit_block_); in BuildGraph() 67 graph_->SetEntryBlock(entry_block_); in BuildGraph() 68 graph_->SetExitBlock(exit_block_); in BuildGraph() 70 x_ = new (GetAllocator()) HParameterValue(graph_->GetDexFile(), in BuildGraph() [all …]
|