21 const
Def* rewrite_arg(const
App* app, const
Def* old_op);
22 const
Def* rewrite_callee_op(const
Def* old_op);
24 Lam* scope(
Lam* lam) {
return lam2fscope_[lam]; }
26 bool from_outer_scope(
Lam* lam) {
28 return mut && scope(lam) && scope(lam) != scope(mut);
31 const Def* eta_wrap(
const Def* old_op,
attr a);
35 bool analyzed_ =
false;
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
World & world()=delete
Hides both and forbids direct access.
The World represents the whole program and manages creation of MimIR nodes (Defs).
ClosConvPrep(World &world, flags_t annex)
const Def * rewrite_imm_App(const App *) final
bool analyze() final
Fills lam2fscope_: assigns each basicblock Lam to its enclosing returning Lam.
GIDMap< const Def *, To > DefMap