MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::plug::mem::phase Namespace Reference

Classes

class  AddMem
 Threads the mem.M memory monad through the world: mem-extends continuations and rewires every memory operand to the current memory at that program point. More...
class  SEO
 Symbolic Expression Optimization. More...

Enumerations

enum  {
  Proxy_SCCP_Top ,
  Proxy_Bundle ,
  Proxy_Sloxy ,
  Proxy_Phi
}

Functions

static size_t idx_of (Defs vars, const Def *p)
static const Proxyisa_bundle (const Def *def, Lam *lam)
static bool is_dependent (Lam *lam)
 Does lam's signature refer to its own binder's Var?
static const Defmk_phi (World &w, Lam *lam, const Def *sloxy)
static bool keep (Lam *lam, const Def *old_var, const Def *abstr)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
Proxy_SCCP_Top 
Proxy_Bundle 
Proxy_Sloxy 
Proxy_Phi 

Definition at line 13 of file seo.cpp.

Function Documentation

◆ idx_of()

size_t mim::plug::mem::phase::idx_of ( Defs vars,
const Def * p )
static

Definition at line 20 of file seo.cpp.

References idx_of().

Referenced by idx_of().

◆ is_dependent()

bool mim::plug::mem::phase::is_dependent ( Lam * lam)
static

Does lam's signature refer to its own binder's Var?

Such a signature cannot be narrowed: dropping a component would tear its siblings off the binder.

Definition at line 30 of file seo.cpp.

References mim::Pi::dom(), is_dependent(), mim::Def::isa_mut(), and mim::Lam::type().

Referenced by is_dependent().

◆ isa_bundle()

const Proxy * mim::plug::mem::phase::isa_bundle ( const Def * def,
Lam * lam )
static

Definition at line 94 of file seo.cpp.

References mim::Proxy::isa(), and isa_bundle().

Referenced by isa_bundle(), and keep().

◆ keep()

bool mim::plug::mem::phase::keep ( Lam * lam,
const Def * old_var,
const Def * abstr )
static

Definition at line 351 of file seo.cpp.

References mim::Proxy::isa(), and isa_bundle().

◆ mk_phi()

const Def * mim::plug::mem::phase::mk_phi ( World & w,
Lam * lam,
const Def * sloxy )
static

Definition at line 168 of file seo.cpp.

References mim::Def::dbg_key(), mk_phi(), mim::plug::mem::pointee(), and Proxy_Phi.

Referenced by mk_phi().