39 enum Lattice :
u8 { Dead, Prop, Keep };
40 enum :
u32 { Varxy, Appxy };
Optimistically performs β-reduction (aka inlining).
Performs η-expansion: f -> λx.f x, if f is a Lam with more than one user and does not appear in calle...
FPPass(World &world, std::string name)
static T as(const Def *def)
An optimizer that combines several optimizations in an optimal way.
Stage(World &world, std::string name)
This is a thin wrapper for absl::InlinedVector<T, N, A> which is a drop-in replacement for std::vecto...
The World represents the whole program and manages creation of MimIR nodes (Defs).
undo_t analyze(const Proxy *) override
CopyProp(World &world, flags_t annex)
const Def * rewrite(const Def *) override
void init(PassMan *) final
void apply(Stage &s) final
Dito, but invoked by Stage::recreate.
void apply(const App *app) final
Invoked if your Stage has additional args.
GIDMap< Lam *, To > LamMap