41 std::vector<rvsdg::Output *> alternatives;
51 ex.output->divert_users(
mux[0]);
78 std::vector<rvsdg::Output *> alternatives;
87 ex.output->divert_users(merge[0]);
125 throw util::Error(
"Unexpected structural node: " + node.DebugString());
static std::vector< jlm::rvsdg::Output * > create(jlm::rvsdg::Output &predicate, jlm::rvsdg::Output &value, bool loop=false)
void Run(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
~GammaNodeConversion() noexcept override
static std::vector< jlm::rvsdg::Output * > create(jlm::rvsdg::Output &predicate, const std::vector< jlm::rvsdg::Output * > &alternatives, bool discarding, bool loop=false)
Conditional operator / pattern matching.
std::vector< ExitVar > GetExitVars() const
Gets all exit variables for this gamma.
std::vector< EntryVar > GetEntryVars() const
Gets all entry variables for this gamma.
rvsdg::Input * predicate() const noexcept
rvsdg::Region * region() const noexcept
size_t noutputs() const noexcept
Represent acyclic RVSDG subgraphs.
void copy(Region *target, SubstitutionMap &smap) const
Copy a region with substitutions.
NodeRange Nodes() noexcept
rvsdg::Region * subregion(size_t index) const noexcept
size_t nsubregions() const noexcept
StructuralOutput * output(size_t index) const noexcept
void insert(const Output *original, Output *substitute)
static void ConvertGammaNodeWithoutSpeculation(rvsdg::GammaNode &gammaNode)
static void ConvertGammaNodeWithSpeculation(rvsdg::GammaNode &gammaNode)
static void ConvertGammaNodesInStructuralNode(rvsdg::StructuralNode &structuralNode)
static bool CanGammaNodeBeSpeculative(const rvsdg::GammaNode &gammaNode)
static void ConvertGammaNodesInRegion(rvsdg::Region ®ion)
static void remove(Node *node)
@ State
Designate a state type.
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.
detail::TopDownTraverserGeneric< false > TopDownTraverser
Traverser for visiting every node in a region in a top down order.