static constexpr auto Node
Ref rebuild_(World &, Ref, Defs) const override
Bound(node_t node, const Def *type, size_t size)
Constructor for a mutable Bound.
size_t find(const Def *type) const
const Def * get(const Def *type) const
Bound(node_t node, const Def *type, Defs ops)
Constructor for an immutable Bound.
Def * set(size_t i, const Def *def)
Successively set from left to right.
const Def * op(size_t i) const
Common base for TExtremum.
Ext(node_t node, const Def *type)
Picks the aspect of a Meet [value](Pick::value) by its [type](Def::type).
Ref rebuild_(World &, Ref, Defs) const override
static constexpr auto Node
const Def * value() const
Helper class to retrieve Infer::arg if present.
CRTP-based Mixin to declare setters for Def::loc & Def::name using a covariant return type.
const TBound< Up > * set(Loc l) const
A singleton wraps a type into a higher order type.
Ref rebuild_(World &, Ref, Defs) const override
const Def * inhabitant() const
static constexpr auto Node
This is a thin wrapper for std::span<T, N> with the following additional features:
Specific Bound depending on Up.
Ref rebuild_(World &, Ref, Defs) const override
TBound * stub_(World &, Ref) override
static constexpr auto Node
Extremum. Either Top (Up) or Bottom.
Ref rebuild_(World &, Ref, Defs) const override
static constexpr auto Node
TExt * stub_(World &, Ref) override
Test whether Test::value currently holds type Test::probe:
const Def * clash() const
const Def * probe() const
const Def * match() const
const Def * value() const
Ref rebuild_(World &, Ref, Defs) const override
static constexpr auto Node
static constexpr auto Node
const Def * value() const
Ref rebuild_(World &, Ref, Defs) const override
The World represents the whole program and manages creation of MimIR nodes (Defs).