22 void convert(
Lam* lam);
25 const Def* jb_type() {
return void_ptr(); }
29 Lam* get_throw(
const Def* res_type);
30 Lam* get_lpad(
Lam* lam,
const Def* rb);
32 void get_exn_closures(
Lam* lam);
33 void get_exn_closures(
const Def* def,
DefSet& visited);
34 const Def* subst_exn_closures(
const Def* def,
Def2Def& memo);
43 const Def* cur_rbuf_ =
nullptr;
44 const Def* cur_jbuf_ =
nullptr;
World & new_world()
Create new Defs into this.
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).
const Def * annex(Sym sym)
Lookup annex by Sym.
const Def * call(const Def *callee, T &&arg, Args &&... args)
Clos2SJLJ(World &world, flags_t annex)
const Def * rewrite_mut_Lam(Lam *) final
DefMap< const Def * > Def2Def
GIDMap< const Def *, To > DefMap
GIDMap< Lam *, To > LamMap
GIDSet< const Def * > DefSet