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 const Defmk_phi (World &w, Lam *lam, const Def *sloxy)
static void find_unknowns (DefSet &visited, LamSet &res, const Def *def)
static void find_unknowns_callee (DefSet &visited, LamSet &res, const Def *def)
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 15 of file seo.cpp.

Function Documentation

◆ find_unknowns()

void mim::plug::mem::phase::find_unknowns ( DefSet & visited,
LamSet & res,
const Def * def )
static

◆ find_unknowns_callee()

void mim::plug::mem::phase::find_unknowns_callee ( DefSet & visited,
LamSet & res,
const Def * def )
static

Definition at line 214 of file seo.cpp.

References find_unknowns().

◆ idx_of()

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

Definition at line 23 of file seo.cpp.

◆ 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().

Referenced by keep().

◆ keep()

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

Definition at line 340 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 170 of file seo.cpp.

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