19 for (
auto & node : region.
Nodes())
29 for (
auto & output : node.Outputs())
45 const auto & graph =
module.Rvsdg();
46 const auto rootRegion = &graph.GetRootRegion();
49 throw std::logic_error(
"Root should have only one node now");
56 throw std::logic_error(
"Node needs to be a lambda");
~IOStateElimination() noexcept override
static void eliminateIOStates(rvsdg::Region ®ion, rvsdg::Output &ioStateArgument)
static rvsdg::Output & getIOStateArgument(const rvsdg::LambdaNode &lambdaNode) noexcept
Represent acyclic RVSDG subgraphs.
NodeRange Nodes() noexcept
Output & RouteToRegion(Output &output, Region ®ion)
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.