Jlm
Loading...
Searching...
No Matches
DotWriter.hpp
Go to the documentation of this file.
1/*
2 * Copyright 2025 Nico Reißmann <nico.reissmann@gmail.com>
3 * See COPYING for terms of redistribution.
4 */
5
6#ifndef JLM_RVSDG_DOTWRITER_HPP
7#define JLM_RVSDG_DOTWRITER_HPP
8
11
12namespace jlm::rvsdg
13{
14
16{
17public:
19
30 util::graph::Graph &
31 WriteGraph(util::graph::Writer & writer, const Region & region);
32
44 util::graph::Graph &
45 WriteGraphs(util::graph::Writer & writer, const Region & region, bool emitTypeGraph);
46
48 util::graph::Node &
49 GetOrCreateTypeGraphNode(const Type & type, util::graph::Graph & typeGraph);
50
51 virtual void
52 AnnotateTypeGraphNode(const Type & type, util::graph::Node & node);
53
54 virtual void
57 util::graph::Node & node,
58 util::graph::Graph * typeGraph);
59
60 virtual void
61 AnnotateEdge(const Input & rvsdgInput, util::graph::Edge & edge);
62
63 virtual void
66 util::graph::Node & node,
67 util::graph::Graph * typeGraph);
68
70 void
72 util::graph::Graph & graph,
73 const Region & region,
74 util::graph::Graph * typeGraph,
76
77 void
78 AttachNodeInput(util::graph::Port & inputPort, const Input & rvsdgInput);
79
80 void
82 util::graph::Port & outputPort,
84 util::graph::Graph * typeGraph);
85};
86
87}
88
89#endif
void AttachNodeOutput(util::graph::Port &outputPort, const Output &rvsdgOutput, util::graph::Graph *typeGraph)
Definition DotWriter.cpp:92
virtual void AnnotateGraphNode(const Node &rvsdgNode, util::graph::Node &node, util::graph::Graph *typeGraph)
Definition DotWriter.cpp:21
virtual ~DotWriter() noexcept
virtual void AnnotateTypeGraphNode(const Type &type, util::graph::Node &node)
Definition DotWriter.cpp:17
util::graph::Graph & WriteGraphs(util::graph::Writer &writer, const Region &region, bool emitTypeGraph)
util::graph::Graph & WriteGraph(util::graph::Writer &writer, const Region &region)
void AttachNodeInput(util::graph::Port &inputPort, const Input &rvsdgInput)
Definition DotWriter.cpp:69
virtual void AnnotateRegionArgument(const RegionArgument &regionArgument, util::graph::Node &node, util::graph::Graph *typeGraph)
Definition DotWriter.cpp:32
virtual void AnnotateEdge(const Input &rvsdgInput, util::graph::Edge &edge)
Definition DotWriter.cpp:28
void CreateGraphNodes(util::graph::Graph &graph, const Region &region, util::graph::Graph *typeGraph, bool traverseRecursively)
util::graph::Node & GetOrCreateTypeGraphNode(const Type &type, util::graph::Graph &typeGraph)
Definition DotWriter.cpp:43
Represents the argument of a region.
Definition region.hpp:41
Represent acyclic RVSDG subgraphs.
Definition region.hpp:213
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.
Definition node.hpp:872