18 HandleRootRegion(module.Rvsdg().GetRootRegion());
33 for (
auto & node : region.
Nodes())
49 for (
const auto argument : region.
Arguments())
51 if (argument->IsDead())
57 for (
auto & node : region.
Nodes())
69 for (
size_t n = 0;
n < node.noutputs();
n++)
71 const auto output = node.output(
n);
static jlm::util::StatisticsCollector statisticsCollector
void Run(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
static void AddSinksToRegion(rvsdg::Region ®ion)
~SinkInsertion() noexcept override
static void HandleRootRegion(rvsdg::Region ®ion)
static void CreateAndRun(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector)
static std::vector< jlm::rvsdg::Output * > create(jlm::rvsdg::Output &value)
Represent acyclic RVSDG subgraphs.
RegionArgumentRange Arguments() noexcept
NodeRange Nodes() noexcept
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.