/art/compiler/optimizing/ |
H A D | ssa_type_propagation.h | 24 // Compute and propagate types of phis in the graph. 27 explicit SsaTypePropagation(HGraph* graph) argument 28 : graph_(graph), worklist_(graph->GetArena(), kDefaultWorklistSize) {}
|
H A D | ssa_phi_elimination.h | 25 * Optimization phase that removes dead phis from the graph. Dead phis are unused 30 explicit SsaDeadPhiElimination(HGraph* graph) argument 31 : graph_(graph), worklist_(graph->GetArena(), kDefaultWorklistSize) {} 52 explicit SsaRedundantPhiElimination(HGraph* graph) argument 53 : graph_(graph), worklist_(graph->GetArena(), kDefaultWorklistSize) {}
|
H A D | dominator_test.cc | 32 HGraph* graph = builder.BuildGraph(*item); local 33 ASSERT_NE(graph, nullptr); 34 graph->BuildDominatorTree(); 35 ASSERT_EQ(graph->GetBlocks().Size(), blocks_length); 38 ASSERT_EQ(nullptr, graph->GetBlocks().Get(i)->GetDominator()); 40 ASSERT_NE(nullptr, graph->GetBlocks().Get(i)->GetDominator()); 41 ASSERT_EQ(blocks[i], graph->GetBlocks().Get(i)->GetDominator()->GetBlockId());
|
H A D | linearize_test.cc | 41 HGraph* graph = builder.BuildGraph(*item); local 42 ASSERT_NE(graph, nullptr); 44 graph->BuildDominatorTree(); 45 graph->TransformToSSA(); 46 graph->FindNaturalLoops(); 48 CodeGenerator* codegen = CodeGenerator::Create(&allocator, graph, InstructionSet::kX86); 49 SsaLivenessAnalysis liveness(*graph, codegen); 60 // Structure of this graph (+ are back edges) 85 // Structure of this graph (+ are back edges) 110 // Structure of this graph ( [all...] |
H A D | live_ranges_test.cc | 33 HGraph* graph = builder.BuildGraph(*item); local 34 graph->BuildDominatorTree(); 35 graph->TransformToSSA(); 36 graph->FindNaturalLoops(); 37 return graph; 45 * Which becomes the following graph (numbered by lifetime position): 59 HGraph* graph = BuildGraph(data, &allocator); local 61 CodeGenerator* codegen = CodeGenerator::Create(&allocator, graph, InstructionSet::kX86); 62 SsaLivenessAnalysis liveness(*graph, codegen); 70 HBasicBlock* block = graph 106 HGraph* graph = BuildGraph(data, &allocator); local 155 HGraph* graph = BuildGraph(data, &allocator); local 231 HGraph* graph = BuildGraph(data, &allocator); local [all...] |
H A D | pretty_printer_test.cc | 35 HGraph* graph = builder.BuildGraph(*item); local 36 ASSERT_NE(graph, nullptr); 37 StringPrettyPrinter printer(graph);
|
H A D | ssa_builder.h | 28 explicit SsaBuilder(HGraph* graph) argument 29 : HGraphVisitor(graph), 31 loop_headers_(graph->GetArena(), kDefaultNumberOfLoops), 32 locals_for_(graph->GetArena(), graph->GetBlocks().Size()) { 33 locals_for_.SetSize(graph->GetBlocks().Size());
|
H A D | find_loops_test.cc | 34 HGraph* graph = builder.BuildGraph(*item); local 35 graph->BuildDominatorTree(); 36 graph->FindNaturalLoops(); 37 return graph; 47 HGraph* graph = TestCode(data, &arena); local 48 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) { 49 ASSERT_EQ(graph->GetBlocks().Get(i)->GetLoopInformation(), nullptr); 59 HGraph* graph = TestCode(data, &arena); local 60 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) { 61 ASSERT_EQ(graph 74 HGraph* graph = TestCode(data, &arena); local 90 HGraph* graph = TestCode(data, &arena); local 104 HGraph* graph = TestCode(data, &arena); local 110 TestBlock(HGraph* graph, int block_id, bool is_loop_header, int parent_loop_header_id, const int* blocks_in_loop = nullptr, size_t number_of_blocks = 0) argument 149 HGraph* graph = TestCode(data, &arena); local 176 HGraph* graph = TestCode(data, &arena); local 200 HGraph* graph = TestCode(data, &arena); local 225 HGraph* graph = TestCode(data, &arena); local 251 HGraph* graph = TestCode(data, &arena); local 276 HGraph* graph = TestCode(data, &arena); local 307 HGraph* graph = TestCode(data, &arena); local 336 HGraph* graph = TestCode(data, &arena); local 350 HGraph* graph = TestCode(data, &arena); local [all...] |
H A D | liveness_test.cc | 47 HGraph* graph = builder.BuildGraph(*item); local 48 ASSERT_NE(graph, nullptr); 49 graph->BuildDominatorTree(); 50 graph->TransformToSSA(); 51 graph->FindNaturalLoops(); 52 CodeGenerator* codegen = CodeGenerator::Create(&allocator, graph, InstructionSet::kX86); 53 SsaLivenessAnalysis liveness(*graph, codegen); 57 for (HInsertionOrderIterator it(*graph); !it.Done(); it.Advance()) {
|
H A D | codegen_test.cc | 74 HGraph* graph = builder.BuildGraph(*item); local 75 ASSERT_NE(graph, nullptr); 78 CodeGenerator* codegen = CodeGenerator::Create(&arena, graph, kX86); 86 codegen = CodeGenerator::Create(&arena, graph, kArm); 92 codegen = CodeGenerator::Create(&arena, graph, kX86_64);
|
H A D | graph_test.cc | 28 static HBasicBlock* createIfBlock(HGraph* graph, ArenaAllocator* allocator) { argument 29 HBasicBlock* if_block = new (allocator) HBasicBlock(graph); 30 graph->AddBlock(if_block); 40 static HBasicBlock* createGotoBlock(HGraph* graph, ArenaAllocator* allocator) { argument 41 HBasicBlock* block = new (allocator) HBasicBlock(graph); 42 graph->AddBlock(block); 48 static HBasicBlock* createReturnBlock(HGraph* graph, ArenaAllocator* allocator) { argument 49 HBasicBlock* block = new (allocator) HBasicBlock(graph); 50 graph->AddBlock(block); 56 static HBasicBlock* createExitBlock(HGraph* graph, ArenaAllocato argument 71 HGraph* graph = new (&allocator) HGraph(&allocator); local 106 HGraph* graph = new (&allocator) HGraph(&allocator); local 141 HGraph* graph = new (&allocator) HGraph(&allocator); local 177 HGraph* graph = new (&allocator) HGraph(&allocator); local 213 HGraph* graph = new (&allocator) HGraph(&allocator); local 253 HGraph* graph = new (&allocator) HGraph(&allocator); local 290 HGraph* graph = new (&allocator) HGraph(&allocator); local [all...] |
H A D | pretty_printer.h | 27 explicit HPrettyPrinter(HGraph* graph) : HGraphVisitor(graph) { } argument 106 explicit StringPrettyPrinter(HGraph* graph) argument 107 : HPrettyPrinter(graph), str_(""), current_block_(nullptr) { }
|
H A D | register_allocator_test.cc | 39 HGraph* graph = builder.BuildGraph(*item); local 40 graph->BuildDominatorTree(); 41 graph->TransformToSSA(); 42 graph->FindNaturalLoops(); 43 CodeGenerator* codegen = CodeGenerator::Create(&allocator, graph, kX86); 44 SsaLivenessAnalysis liveness(*graph, codegen); 58 HGraph* graph = new (&allocator) HGraph(&allocator); local 59 CodeGenerator* codegen = CodeGenerator::Create(&allocator, graph, kX86); 147 * Which becomes the following graph: 171 * Which becomes the following graph 253 HGraph* graph = builder.BuildGraph(*item); local 299 HGraph* graph = BuildSSAGraph(data, &allocator); local 331 HGraph* graph = BuildSSAGraph(data, &allocator); local [all...] |
H A D | ssa_test.cc | 33 explicit SsaPrettyPrinter(HGraph* graph) : HPrettyPrinter(graph), str_("") {} argument 65 static void ReNumberInstructions(HGraph* graph) { argument 67 for (size_t i = 0, e = graph->GetBlocks().Size(); i < e; ++i) { 68 HBasicBlock* block = graph->GetBlocks().Get(i); 83 HGraph* graph = builder.BuildGraph(*item); local 84 ASSERT_NE(graph, nullptr); 86 graph->BuildDominatorTree(); 87 graph->TransformToSSA(); 88 ReNumberInstructions(graph); [all...] |
H A D | code_generator_arm.h | 86 explicit LocationsBuilderARM(HGraph* graph, CodeGeneratorARM* codegen) argument 87 : HGraphVisitor(graph), codegen_(codegen) {} 105 InstructionCodeGeneratorARM(HGraph* graph, CodeGeneratorARM* codegen); 126 explicit CodeGeneratorARM(HGraph* graph);
|
H A D | code_generator_x86.h | 87 LocationsBuilderX86(HGraph* graph, CodeGeneratorX86* codegen) argument 88 : HGraphVisitor(graph), codegen_(codegen) {} 106 InstructionCodeGeneratorX86(HGraph* graph, CodeGeneratorX86* codegen); 128 explicit CodeGeneratorX86(HGraph* graph);
|
H A D | code_generator_x86_64.h | 84 LocationsBuilderX86_64(HGraph* graph, CodeGeneratorX86_64* codegen) argument 85 : HGraphVisitor(graph), codegen_(codegen) {} 103 InstructionCodeGeneratorX86_64(HGraph* graph, CodeGeneratorX86_64* codegen); 125 explicit CodeGeneratorX86_64(HGraph* graph);
|
H A D | optimizing_compiler.cc | 108 HGraph* graph = builder.BuildGraph(*code_item); local 109 if (graph == nullptr) { 111 LOG(FATAL) << "Could not build graph in optimizing compiler"; 116 CodeGenerator* codegen = CodeGenerator::Create(&arena, graph, instruction_set); 125 visualizer_output_.get(), graph, kStringFilter, *codegen, dex_compilation_unit); 130 if (RegisterAllocator::CanAllocateRegistersFor(*graph, instruction_set)) { 131 graph->BuildDominatorTree(); 132 graph->TransformToSSA(); 134 graph->FindNaturalLoops(); 136 SsaRedundantPhiElimination(graph) [all...] |
H A D | code_generator.h | 71 // Compiles the graph to executable instructions. Returns whether the compilation 76 HGraph* graph, 143 CodeGenerator(HGraph* graph, size_t number_of_registers) argument 145 graph_(graph), 146 block_labels_(graph->GetArena(), 0), 147 pc_infos_(graph->GetArena(), 32), 148 slow_paths_(graph->GetArena(), 8), 149 blocked_registers_(graph->GetArena()->AllocArray<bool>(number_of_registers)),
|
H A D | graph_visualizer.cc | 31 HGraphVisualizerPrinter(HGraph* graph, argument 35 : HGraphVisitor(graph), 243 HGraph* graph, 247 : output_(output), graph_(graph), codegen_(codegen), is_enabled_(false) { 257 HGraphVisualizerPrinter printer(graph, *output_, "", codegen_); 266 HGraph* graph, 269 : output_(output), graph_(graph), codegen_(codegen), is_enabled_(false) { 275 HGraphVisualizerPrinter printer(graph, *output_, "", codegen_); 242 HGraphVisualizer(std::ostream* output, HGraph* graph, const char* string_filter, const CodeGenerator& codegen, const DexCompilationUnit& cu) argument 265 HGraphVisualizer(std::ostream* output, HGraph* graph, const CodeGenerator& codegen, const char* name) argument
|
/art/compiler/sea_ir/types/ |
H A D | type_inference_visitor.h | 37 TypeInferenceVisitor(SeaGraph* graph, TypeData* type_data, argument 39 graph_(graph), type_data_(type_data), type_cache_(types), crt_type_() { 42 void Initialize(SeaGraph* graph) { } argument 43 void Visit(SeaGraph* graph);
|
H A D | type_inference_visitor.cc | 24 void TypeInferenceVisitor::Visit(SeaGraph* graph) { argument
|
H A D | type_inference.cc | 39 FunctionTypeInfo::FunctionTypeInfo(const SeaGraph* graph, art::verifier::RegTypeCache* types) argument 40 : dex_file_(graph->GetDexFile()), dex_method_idx_(graph->method_idx_), type_cache_(types), 41 method_access_flags_(graph->method_access_flags_) { 47 FunctionTypeInfo::FunctionTypeInfo(const SeaGraph* graph, InstructionNode* inst, argument 48 art::verifier::RegTypeCache* types): dex_file_(graph->GetDexFile()), 143 void TypeInference::ComputeTypes(SeaGraph* graph) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { 144 std::vector<Region*>* regions = graph->GetRegions(); 154 TypeInferenceVisitor tiv(graph, &type_data_, type_cache_); 156 graph [all...] |
/art/compiler/sea_ir/debug/ |
H A D | dot_gen.cc | 23 void DotGenerationVisitor::Initialize(SeaGraph* graph) { argument 24 graph_ = graph; 27 for (std::vector<Region*>::const_iterator cit = graph->GetRegions()->begin(); 28 cit != graph->GetRegions()->end(); cit++ ) { 117 // builds a complete dot graph (without prolog and epilog though).
|
H A D | dot_gen.h | 44 virtual void Initialize(SeaGraph* graph); 48 void Visit(SeaGraph* graph) { argument 55 // builds a complete dot graph (without prolog and epilog though). 97 // Stores options for turning a SEA IR graph to a .dot file. 101 // Saves to @filename the .dot representation of @graph with the options @options. 102 void DumpSea(SeaGraph* graph, std::string filename, argument 106 graph->Accept(&dgv);
|