22 if (output->nusers() == 0)
42 auto argument = input->arguments.begin();
44 if (argument->nusers() == 0)
60 JLM_ASSERT(*result->Type() == *argument->Type());
62 if (argument->nusers() == 0 || (argument->nusers() == 1 && result->origin() == argument))
114 throw util::Error(
"Root should have only one node now");
Represent acyclic RVSDG subgraphs.
size_t numBottomNodes() const noexcept
static bool RemoveUnusedLoopOutputs(LoopNode &loopNode)
static bool RemoveUnusedInputs(LoopNode &loopNode)
static bool EliminateDeadNodesInRegion(rvsdg::Region ®ion)
void EliminateDeadNodes(llvm::LlvmRvsdgModule &rvsdgModule)
static void remove(Node *node)
detail::BottomUpTraverserGeneric< false > BottomUpTraverser
Traverser for visiting every node in a region in a bottom up order.
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.