13std::optional<std::vector<rvsdg::Output *>>
16 const std::vector<rvsdg::Output *> & operands)
19 auto & operand = *operands[0];
22 auto [constantNode, constantOperation] =
24 if (!constantOperation)
27 const auto controlAlternative =
28 matchOperation.
alternative(constantOperation->Representation().to_uint());
35 return std::vector({ &controlConstantResult });
static Output & create(Region ®ion, ControlValueRepresentation value)
uint64_t alternative(uint64_t value) const noexcept
uint64_t nalternatives() const noexcept
Global memory state passed between functions.
rvsdg::Output & traceOutput(rvsdg::Output &output, const rvsdg::Region *withinRegion)
std::optional< std::vector< rvsdg::Output * > > foldMatchOperationWithConstant(const rvsdg::MatchOperation &matchOperation, const std::vector< rvsdg::Output * > &operands)
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.