Lines Matching refs:graph
33 #include "src/compiler/bytecode-graph-builder.h"
47 #include "src/compiler/graph-trimmer.h"
48 #include "src/compiler/graph-visualizer.h"
63 #include "src/compiler/machine-graph-verifier.h"
114 static constexpr char kGraphZoneName[] = "graph-zone";
117 "machine-graph-verifier-zone";
210 graph_(mcgraph->graph()),
231 // For CodeStubAssembler and machine graph testing entry point.
233 Isolate* isolate, AccountingAllocator* allocator, Graph* graph,
251 graph_(graph),
342 Graph* graph() const { return graph_; }
444 new Typer(broker(), typer_flags_, graph(), &info()->tick_counter());
686 // Step A.2. Run the graph creation and initial optimization passes.
692 // Substep B.1. Produce a scheduled graph.
695 // Substep B.2. Select instructions from a scheduled graph.
1336 GraphReducer graph_reducer(temp_zone, data->graph(), &info->tick_counter(),
1339 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
1343 &graph_reducer, data->graph(), data->broker(), data->common(),
1404 GraphReducer graph_reducer(temp_zone, data->graph(), &info->tick_counter(),
1406 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
1409 &graph_reducer, data->graph(), data->broker(), data->common(),
1427 GraphTrimmer trimmer(temp_zone, data->graph());
1446 LoopVariableOptimizer induction_vars(data->jsgraph()->graph(),
1479 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1500 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1502 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
1517 &graph_reducer, data->graph(), data->broker(), data->common(),
1546 GraphReducer reducer(temp_zone, data->graph(),
1570 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1599 GraphTrimmer trimmer(temp_zone, data->graph());
1608 data->jsgraph()->graph(), &data->info()->tick_counter(), temp_zone);
1612 LoopPeeler(data->graph(), data->common(), loop_tree, temp_zone,
1625 if (!WasmInliner::graph_size_allows_inlining(data->graph()->NodeCount())) {
1629 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1631 DeadCodeElimination dead(&graph_reducer, data->graph(), data->common(),
1677 data->graph(), data->common(), temp_zone,
1698 PeelWasmLoop(loop_info.header, loop, data->graph(), data->common(),
1712 LoopPeeler::EliminateLoopExits(data->graph(), temp_zone);
1721 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1739 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1741 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
1747 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
1750 &graph_reducer, data->graph(), data->broker(), data->common(),
1766 ControlFlowOptimizer optimizer(data->graph(), data->common(),
1780 GraphTrimmer trimmer(temp_zone, data->graph());
1788 // Schedule the graph without node splitting so that we can
1793 temp_zone, data->graph(), Scheduler::kTempSchedule,
1809 // run {DeadCodeElimination} to prune these parts of the graph.
1813 GraphReducer graph_reducer(temp_zone, data->graph(),
1817 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
1820 &graph_reducer, data->graph(), data->broker(), data->common(),
1833 GraphTrimmer trimmer(temp_zone, data->graph());
1851 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1856 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
1862 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
1864 &graph_reducer, data->graph(), data->broker(), data->common(),
1896 GraphTrimmer trimmer(temp_zone, data->graph());
1920 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1924 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
1926 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
1929 &graph_reducer, data->graph(), data->broker(), data->common(),
1932 SelectLowering select_lowering(&graph_assembler, data->graph());
1948 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1950 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
1964 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
1966 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
1978 temp_zone, data->graph(), data->common(), data->machine());
1989 data->graph());
2004 GraphReducer graph_reducer(temp_zone, data->graph(),
2010 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
2013 &graph_reducer, data->graph(), data->broker(), data->common(),
2015 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
2030 GraphReducer graph_reducer(temp_zone, data->graph(),
2036 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
2039 &graph_reducer, data->graph(), data->broker(), data->common(),
2041 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
2063 GraphReducer graph_reducer(temp_zone, data->graph(),
2069 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
2072 &graph_reducer, data->graph(), data->broker(), data->common(),
2074 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
2085 GraphReducer graph_reducer(temp_zone, data->graph(),
2091 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
2094 &graph_reducer, data->graph(), data->broker(), data->common(),
2096 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
2114 temp_zone, data->graph(), &data->info()->tick_counter(), data->broker(),
2118 DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
2123 &graph_reducer, data->graph(), data->broker(), data->common(),
2125 ValueNumberingReducer value_numbering(temp_zone, data->graph()->zone());
2140 temp_zone, data->graph(),
2185 temp_zone, data->graph()->NodeCount(), linkage, data->sequence(),
2433 Graph* graph = data->graph();
2440 json_of << "{\"name\":\"" << phase << "\",\"type\":\"graph\",\"data\":"
2441 << AsJSON(*graph, data->source_positions(), data->node_origins())
2450 temp_zone, data->graph(), Scheduler::kNoFlags,
2466 << AsRPO(*graph);
2489 Verifier::Run(data->graph(), !untyped ? Verifier::TYPED : Verifier::UNTYPED,
2503 std::unique_ptr<Zone> zone, Graph* graph,
2512 info_(base::CStrVector(debug_name_.get()), graph->zone(), kind),
2516 graph_(graph),
2546 std::unique_ptr<Zone> zone, Graph* graph, CodeKind kind,
2550 isolate, call_descriptor, std::move(zone), graph, kind,
2577 << " graph -- " << std::endl
2578 << AsRPO(*data_.graph());
2695 // Trim the graph before typing to ensure all nodes are typed.
2699 // Type the graph and keep the Typer running such that new nodes get
2754 // essentially need to re-type (large portions of) the graph.
2820 // Compute a hash of the given graph, in a way that should provide the same
2827 int HashGraphForPGO(Graph* graph) {
2837 // Do a depth-first post-order traversal of the graph. For every node, hash:
2847 ZoneVector<byte> state(graph->NodeCount(), kUnvisited, &local_zone);
2848 ZoneVector<NodeId> traversal_numbers(graph->NodeCount(), kUnassigned,
2855 stack.push(graph->end());
2856 state[graph->end()->id()] = kOnStack;
2857 traversal_numbers[graph->end()->id()] = visited_count++;
2887 Isolate* isolate, CallDescriptor* call_descriptor, Graph* graph,
2891 OptimizedCompilationInfo info(base::CStrVector(debug_name), graph->zone(),
2897 NodeOriginTable node_origins(graph);
2902 PipelineData data(&zone_stats, &info, isolate, isolate->allocator(), graph,
2956 graph_hash_before_scheduling = HashGraphForPGO(data.graph());
2973 data.graph(), data.jsgraph(), data.schedule(),
3018 Graph* graph = mcgraph->graph();
3019 OptimizedCompilationInfo info(base::CStrVector(debug_name), graph->zone(),
3024 NodeOriginTable* node_positions = graph->zone()->New<NodeOriginTable>(graph);
3045 StdoutStream{} << "-- wasm stub " << CodeKindToString(kind) << " graph -- "
3047 << AsRPO(*graph);
3302 CallDescriptor* call_descriptor, Graph* graph,
3306 NodeOriginTable* node_positions = info->zone()->New<NodeOriginTable>(graph);
3307 PipelineData data(&zone_stats, info, isolate, isolate->allocator(), graph,
3378 // We should only schedule the graph if it is not scheduled yet.
3389 // We should have a scheduled graph.
3390 DCHECK_NOT_NULL(data->graph());
3396 info(), data->graph(), data->schedule(), data->isolate()));
3406 // violate the machine graph verification rules. So we skip the second
3407 // verification on a graph that already verified before.
3434 MachineGraphVerifier::Run(data->graph(), data->schedule(), linkage, is_stub,
3445 // Select and schedule instructions covering the scheduled graph.
3463 // Output source position information before the graph is deleted.