/art/compiler/optimizing/ |
H A D | codegen_test.cc | 66 TestCodeGeneratorARM(HGraph* graph, argument 69 : arm::CodeGeneratorARM(graph, isa_features, compiler_options) { 86 TestCodeGeneratorX86(HGraph* graph, argument 89 : x86::CodeGeneratorX86(graph, isa_features, compiler_options) { 205 HGraph* graph, 209 GraphChecker graph_checker(graph); 218 SsaLivenessAnalysis liveness(graph, codegen); 220 PrepareForRegisterAllocation(graph).Run(); 222 RegisterAllocator(graph->GetArena(), codegen, liveness).AllocateRegisters(); 223 hook_before_codegen(graph); 204 RunCode(CodeGenerator* codegen, HGraph* graph, std::function<void(HGraph*)> hook_before_codegen, bool has_result, Expected expected) argument 231 RunCode(InstructionSet target_isa, HGraph* graph, std::function<void(HGraph*)> hook_before_codegen, bool has_result, Expected expected) argument 298 HGraph* graph = CreateCFG(&arena, data); local 311 HGraph* graph = CreateCFG(&arena, data, Primitive::kPrimLong); local 635 HGraph* graph = CreateGraph(&allocator); local 697 HGraph* graph = CreateGraph(&allocator); local 745 HGraph* graph = CreateGraph(&allocator); local 826 HGraph* graph = CreateGraph(&allocator); local [all...] |
H A D | gvn.cc | 354 HGraph* graph, 356 : graph_(graph), 359 sets_(graph->GetBlocks().size(), nullptr, allocator->Adapter(kArenaAllocGvn)), 361 allocator, graph->GetBlocks().size(), /* expandable */ false, kArenaAllocGvn) {} 485 // Save the next instruction in case `current` is removed from the graph. 353 GlobalValueNumberer(ArenaAllocator* allocator, HGraph* graph, const SideEffectsAnalysis& side_effects) argument
|
H A D | graph_visualizer.cc | 163 HGraphVisualizerPrinter(HGraph* graph, argument 170 : HGraphDelegateVisitor(graph), 582 // The NullConstant may be added to the graph during other passes that happen between 669 // If the graph has an exit block we attach the block for the slow paths 670 // after it. Else we just add the block to the graph without linking it to 770 HGraph* graph, 772 : output_(output), graph_(graph), codegen_(codegen) {} 769 HGraphVisualizer(std::ostream* output, HGraph* graph, const CodeGenerator& codegen) argument
|
H A D | induction_var_analysis.cc | 23 * Since graph traversal may enter a SCC at any position, an initial representation may be rotated, 86 HInductionVarAnalysis::HInductionVarAnalysis(HGraph* graph) argument 87 : HOptimization(graph, kInductionPassName), 89 stack_(graph->GetArena()->Adapter(kArenaAllocInductionVarAnalysis)), 90 scc_(graph->GetArena()->Adapter(kArenaAllocInductionVarAnalysis)), 92 graph->GetArena()->Adapter(kArenaAllocInductionVarAnalysis)), 94 graph->GetArena()->Adapter(kArenaAllocInductionVarAnalysis)), 96 graph->GetArena()->Adapter(kArenaAllocInductionVarAnalysis)) { 114 // Find strongly connected components (SSCs) in the SSA graph of this loop using Tarjan's
|
H A D | induction_var_range.cc | 203 HGraph* graph, 208 if (!GenerateCode(context, instruction, graph, block, lower, upper, nullptr, &b1, &b2)) { 214 HGraph* graph, 218 if (!GenerateCode(context, context, graph, block, nullptr, nullptr, taken_test, &b1, &b2)) { 607 HGraph* graph, 640 return GenerateCode(trip->op_b, nullptr, graph, block, taken_test, in_body, /* is_min */ false); 651 GenerateCode(info, trip, graph, block, lower, in_body, /* is_min */ true)) && 653 GenerateCode(info, trip, graph, block, upper, in_body, /* is_min */ false); 658 HGraph* graph, // when set, code is generated 681 if (GenerateCode(info->op_a, trip, graph, bloc 201 GenerateRangeCode(HInstruction* context, HInstruction* instruction, HGraph* graph, HBasicBlock* block, HInstruction** lower, HInstruction** upper) argument 213 GenerateTakenTest(HInstruction* context, HGraph* graph, HBasicBlock* block, HInstruction** taken_test) argument 605 GenerateCode(HInstruction* context, HInstruction* instruction, HGraph* graph, HBasicBlock* block, HInstruction** lower, HInstruction** upper, HInstruction** taken_test, bool* needs_finite_test, bool* needs_taken_test) const argument 656 GenerateCode(HInductionVarAnalysis::InductionInfo* info, HInductionVarAnalysis::InductionInfo* trip, HGraph* graph, HBasicBlock* block, HInstruction** result, bool in_body, bool is_min) const argument [all...] |
H A D | code_generator.cc | 556 std::unique_ptr<CodeGenerator> CodeGenerator::Create(HGraph* graph, argument 561 ArenaAllocator* arena = graph->GetArena(); 567 new (arena) arm::CodeGeneratorARM(graph, 576 new (arena) arm64::CodeGeneratorARM64(graph, 585 new (arena) mips::CodeGeneratorMIPS(graph, 594 new (arena) mips64::CodeGeneratorMIPS64(graph, 603 new (arena) x86::CodeGeneratorX86(graph, 612 new (arena) x86_64::CodeGeneratorX86_64(graph, 628 const HGraph& graph, 635 if (graph 627 CheckCovers(uint32_t dex_pc, const HGraph& graph, const CodeInfo& code_info, const ArenaVector<HSuspendCheck*>& loop_headers, ArenaVector<size_t>* covered) argument 645 CheckLoopEntriesCanBeUsedForOsr(const HGraph& graph, const CodeInfo& code_info, const DexFile::CodeItem& code_item) argument [all...] |
H A D | load_store_elimination.cc | 193 explicit HeapLocationCollector(HGraph* graph) argument 194 : HGraphVisitor(graph), 195 ref_info_array_(graph->GetArena()->Adapter(kArenaAllocLSE)), 196 heap_locations_(graph->GetArena()->Adapter(kArenaAllocLSE)), 197 aliasing_matrix_(graph->GetArena(), 510 LSEVisitor(HGraph* graph, argument 513 : HGraphVisitor(graph), 516 heap_values_for_(graph->GetBlocks().size(), 520 graph->GetArena()->Adapter(kArenaAllocLSE)), 521 graph [all...] |
H A D | optimizing_compiler.cc | 124 PassObserver(HGraph* graph, argument 128 : graph_(graph), 132 disasm_info_(graph->GetArena()), 134 visualizer_(visualizer_output, graph, *codegen), 172 // Dump graph first, then start timer. 182 // Pause timer first, then dump graph. 231 // Flag to be set by the compiler if the pass failed and the graph is not 300 // Create a 'CompiledMethod' for an optimized graph. 310 // 1) Builds the graph. Returns null if it failed to build it. 311 // 2) Transforms the graph t 399 MaybeRunInliner(HGraph* graph, CodeGenerator* codegen, CompilerDriver* driver, OptimizingCompilerStats* stats, const DexCompilationUnit& dex_compilation_unit, PassObserver* pass_observer, StackHandleScopeCollection* handles) argument 429 RunArchOptimizations(InstructionSet instruction_set, HGraph* graph, CodeGenerator* codegen, OptimizingCompilerStats* stats, PassObserver* pass_observer) argument 482 AllocateRegisters(HGraph* graph, CodeGenerator* codegen, PassObserver* pass_observer) argument 501 RunOptimizations(HGraph* graph, CodeGenerator* codegen, CompilerDriver* driver, OptimizingCompilerStats* stats, const DexCompilationUnit& dex_compilation_unit, PassObserver* pass_observer, StackHandleScopeCollection* handles) argument 673 HGraph* graph = new (arena) HGraph( local [all...] |
H A D | reference_type_propagation.cc | 74 RTPVisitor(HGraph* graph, argument 79 : HGraphDelegateVisitor(graph), 116 ReferenceTypePropagation::ReferenceTypePropagation(HGraph* graph, argument 121 : HOptimization(graph, name), 124 worklist_(graph->GetArena()->Adapter(kArenaAllocReferenceTypePropagation)), 129 // TODO: move this to the graph checker. 634 // should remove it from the graph.
|
H A D | bounds_check_elimination.cc | 524 BCEVisitor(HGraph* graph, argument 527 : HGraphVisitor(graph), 528 maps_(graph->GetBlocks().size(), 531 graph->GetArena()->Adapter(kArenaAllocBoundsCheckElimination)), 532 graph->GetArena()->Adapter(kArenaAllocBoundsCheckElimination)), 535 graph->GetArena()->Adapter(kArenaAllocBoundsCheckElimination)), 537 graph->GetArena()->Adapter(kArenaAllocBoundsCheckElimination)), 541 graph->GetArena()->Adapter(kArenaAllocBoundsCheckElimination)), 544 graph->GetArena()->Adapter(kArenaAllocBoundsCheckElimination)), 545 finite_loop_(graph 1685 HGraph* graph = GetGraph(); local [all...] |
H A D | code_generator.h | 171 // Compiles the graph to executable instructions. 173 static std::unique_ptr<CodeGenerator> Create(HGraph* graph, 180 // Get the graph. This is the outermost graph, never the graph of a method being inlined. 491 CodeGenerator(HGraph* graph, argument 503 blocked_core_registers_(graph->GetArena()->AllocArray<bool>(number_of_core_registers, 505 blocked_fpu_registers_(graph->GetArena()->AllocArray<bool>(number_of_fpu_registers, 507 blocked_register_pairs_(graph->GetArena()->AllocArray<bool>(number_of_register_pairs, 514 stack_map_stream_(graph 698 SlowPathGenerator(HGraph* graph, CodeGenerator* codegen) argument 790 InstructionCodeGenerator(HGraph* graph, CodeGenerator* codegen) argument [all...] |
H A D | instruction_simplifier.cc | 27 InstructionSimplifierVisitor(HGraph* graph, OptimizingCompilerStats* stats) argument 28 : HGraphDelegateVisitor(graph), 509 HGraph* graph = GetGraph(); local 512 instruction->ReplaceWith(graph->GetIntConstant(0)); 525 HNotEqual* test = new (graph->GetArena()) HNotEqual(graph->GetNullConstant(), object); 530 instruction->ReplaceWith(graph->GetIntConstant(outcome));
|
H A D | nodes.cc | 149 // (1) Find the back edges in the graph doing a DFS traversal. 263 // Check if the graph has back edges not dominated by their respective headers. 341 // this graph. 482 // entry block. Note that this method can be called from the graph builder and 506 // id and/or any invariants the graph is assuming when adding new instructions. 522 // id and/or any invariants the graph is assuming when adding new instructions. 654 HGraph* graph = header_->GetGraph(); local 661 ArenaBitVector visited(graph->GetArena(), 662 graph->GetBlocks().size(), 677 if (!is_irreducible_loop && graph 1169 HGraph* graph = GetBlock()->GetGraph(); local [all...] |
H A D | ssa_liveness_analysis.h | 972 bool IsLinearOrderWellFormed(const HGraph& graph) { argument 973 for (HBasicBlock* header : graph.GetBlocks()) { 982 for (HLinearOrderIterator it(graph); !it.Done(); it.Advance()) { 1140 * (c) When the graph has the debuggable property, environment uses 1142 * If the graph does not have the debuggable property, the environment 1149 SsaLivenessAnalysis(HGraph* graph, CodeGenerator* codegen) argument 1150 : graph_(graph), 1152 block_infos_(graph->GetBlocks().size(), 1154 graph->GetArena()->Adapter(kArenaAllocSsaLiveness)), 1155 instructions_from_ssa_index_(graph [all...] |
H A D | code_generator_mips64.cc | 402 CodeGeneratorMIPS64::CodeGeneratorMIPS64(HGraph* graph, argument 406 : CodeGenerator(graph, 417 location_builder_(graph, this), 418 instruction_visitor_(graph, this), 419 move_resolver_(graph->GetArena(), this), 420 assembler_(graph->GetArena()), 1012 InstructionCodeGeneratorMIPS64::InstructionCodeGeneratorMIPS64(HGraph* graph, argument 1014 : InstructionCodeGenerator(graph, codegen),
|
H A D | code_generator_arm64.cc | 890 CodeGeneratorARM64::CodeGeneratorARM64(HGraph* graph, argument 894 : CodeGenerator(graph, 902 block_labels_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 903 jump_tables_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 904 location_builder_(graph, this), 905 instruction_visitor_(graph, this), 906 move_resolver_(graph->GetArena(), this), 907 assembler_(graph->GetArena()), 910 graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 912 graph 1543 InstructionCodeGeneratorARM64(HGraph* graph, CodeGeneratorARM64* codegen) argument [all...] |
H A D | code_generator_mips.cc | 456 CodeGeneratorMIPS::CodeGeneratorMIPS(HGraph* graph, argument 460 : CodeGenerator(graph, 471 location_builder_(graph, this), 472 instruction_visitor_(graph, this), 473 move_resolver_(graph->GetArena(), this), 474 assembler_(graph->GetArena(), &isa_features), 1130 InstructionCodeGeneratorMIPS::InstructionCodeGeneratorMIPS(HGraph* graph, argument 1132 : InstructionCodeGenerator(graph, codegen),
|
H A D | code_generator_arm.cc | 762 CodeGeneratorARM::CodeGeneratorARM(HGraph* graph, argument 766 : CodeGenerator(graph, 777 location_builder_(graph, this), 778 instruction_visitor_(graph, this), 779 move_resolver_(graph->GetArena(), this), 780 assembler_(graph->GetArena()), 783 graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 785 graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 787 graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 788 relative_call_patches_(graph 865 InstructionCodeGeneratorARM(HGraph* graph, CodeGeneratorARM* codegen) argument [all...] |
H A D | code_generator_x86.cc | 780 CodeGeneratorX86::CodeGeneratorX86(HGraph* graph, argument 784 : CodeGenerator(graph, 795 location_builder_(graph, this), 796 instruction_visitor_(graph, this), 797 move_resolver_(graph->GetArena(), this), 798 assembler_(graph->GetArena()), 800 method_patches_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 801 relative_call_patches_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 802 pc_relative_dex_cache_patches_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 803 simple_patches_(graph 833 InstructionCodeGeneratorX86(HGraph* graph, CodeGeneratorX86* codegen) argument [all...] |
H A D | code_generator_x86_64.cc | 991 CodeGeneratorX86_64::CodeGeneratorX86_64(HGraph* graph, argument 995 : CodeGenerator(graph, 1007 location_builder_(graph, this), 1008 instruction_visitor_(graph, this), 1009 move_resolver_(graph->GetArena(), this), 1010 assembler_(graph->GetArena()), 1013 method_patches_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 1014 relative_call_patches_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 1015 pc_relative_dex_cache_patches_(graph->GetArena()->Adapter(kArenaAllocCodeGenerator)), 1016 simple_patches_(graph 1022 InstructionCodeGeneratorX86_64(HGraph* graph, CodeGeneratorX86_64* codegen) argument [all...] |
H A D | nodes.h | 275 // Control-flow graph of a method. Contains a list of basic blocks. 345 // Analyze all natural loops in this graph. Returns a code specifying that it 354 // Inline this graph in `outer_graph`, replacing the given `invoke` instruction. 371 // Removes `block` from the graph. Assumes `block` has been disconnected from 463 // already, it is created and inserted into the graph. This method is only for 515 // The instruction has been inserted into the graph, either as a constant, or 548 // Cache a float constant into the graph. This method should only be 569 // The maximum number of virtual registers arguments passed to a HInvoke in this graph. 584 // Flag whether there are any try/catch blocks in the graph. We will skip 588 // Flag whether there are any irreducible loops in the graph 649 HLoopInformation(HBasicBlock* header, HGraph* graph) argument 815 HBasicBlock(HGraph* graph, uint32_t dex_pc = kNoDexPc) argument 879 SetGraph(HGraph* graph) argument [all...] |