19 , eta_exp_(eta_exp) {}
33 void enter()
override;
Performs η-expansion: f -> λx.f x, if f is a Lam with more than one user and does not appear in calle...
Inherit from this class using CRTP, if you do need a Pass with a state and a fixed-point.
An optimizer that combines several optimizations in an optimal way.
Helper class to retrieve Infer::arg if present.
SSA construction algorithm that promotes slots, loads, and stores to SSA values.
GIDSet< const Proxy * > writable
Ref rewrite(const Proxy *) override
SSAConstr(PassMan &man, EtaExp *eta_exp)
undo_t analyze(const Proxy *) override
GIDNodeMap< Lam *, Info > Data
void enter() override
Invoked just before Pass::rewriteing PassMan::curr_mut's body.
absl::flat_hash_set< K, GIDHash< K >, GIDEq< K > > GIDSet
GIDMap< Lam *, To > LamMap
absl::node_hash_map< K, V, GIDHash< K >, GIDEq< K > > GIDNodeMap