MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mem.h File Reference
#include <mim/axiom.h>
#include <mim/lam.h>
#include <mim/world.h>
#include <mim/plug/core/core.h>
#include "mim/plug/mem/autogen.h"
Include dependency graph for mem.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  mim
 
namespace  mim::plug
 
namespace  mim::plug::mem
 The mem Plugin
 

Enumerations

%mem.Ptr
enum class  mim::plug::mem::AddrSpace : nat_t {
  mim::plug::mem::Generic = 0 ,
  mim::plug::mem::Global = 1 ,
  mim::plug::mem::Texture = 2 ,
  mim::plug::mem::Shared = 3 ,
  mim::plug::mem::Constant = 4
}
 

Functions

%mem.M
Lammim::plug::mem::mut_con (World &w)
 Yields con[mem.M].
 
Lammim::plug::mem::mut_con (const Def *dom)
 Yields con[mem.M, dom].
 
const Defmim::plug::mem::mem_def (const Def *def)
 Returns the (first) element of type mem::M from the given tuple.
 
const Defmim::plug::mem::mem_var (Lam *lam)
 Returns the memory argument of a function if it has one.
 
const Defmim::plug::mem::replace_mem (const Def *mem, const Def *arg)
 Swaps the memory occurrences in the given def with the given memory.
 
const Defmim::plug::mem::strip_mem_ty (const Def *def)
 Removes recusively all occurences of mem from a type (sigma).
 
const Defmim::plug::mem::strip_mem (const Def *def)
 Recursively removes all occurrences of mem from a tuple.
 
%mem.lea
const Defmim::plug::mem::op_lea (const Def *ptr, const Def *index)
 
const Defmim::plug::mem::op_lea_unsafe (const Def *ptr, const Def *i)
 
const Defmim::plug::mem::op_lea_unsafe (const Def *ptr, u64 i)
 
%mem.remem
const Defmim::plug::mem::op_remem (const Def *mem)
 
%mem.alloc
const Defmim::plug::mem::op_alloc (const Def *type, const Def *mem)
 
%mem.slot
const Defmim::plug::mem::op_slot (const Def *type, const Def *mem)
 
%mem.malloc
const Defmim::plug::mem::op_malloc (const Def *type, const Def *mem)
 
%mem.mslot
const Defmim::plug::mem::op_mslot (const Def *type, const Def *mem, const Def *id)