18 HandleRootRegion(module.Rvsdg().GetRootRegion());
27 sinkInsertion.
Run(module, statisticsCollector);
33 for (
auto & node : region.
Nodes())
37 for (
auto & subregion : structuralNode->Subregions())
49 for (
const auto argument : region.
Arguments())
51 if (argument->IsDead())
57 for (
auto & node : region.
Nodes())
62 for (
auto & subregion : structuralNode->Subregions())
69 for (
size_t n = 0; n < node.noutputs(); n++)
71 const auto output = node.output(n);
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