MimIR 0.1
MimIR is my Intermediate Representation
|
#include <mim/axiom.h>
#include <mim/lam.h>
#include <mim/world.h>
#include <mim/plug/core/core.h>
#include "mim/plug/mem/autogen.h"
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 | |
Lam * | mim::plug::mem::mut_con (World &w) |
Yields con[mem.M] . | |
Lam * | mim::plug::mem::mut_con (const Def *dom) |
Yields con[mem.M, dom] . | |
const Def * | mim::plug::mem::mem_def (const Def *def) |
Returns the (first) element of type mem::M from the given tuple. | |
const Def * | mim::plug::mem::mem_var (Lam *lam) |
Returns the memory argument of a function if it has one. | |
const Def * | mim::plug::mem::replace_mem (const Def *mem, const Def *arg) |
Swaps the memory occurrences in the given def with the given memory. | |
const Def * | mim::plug::mem::strip_mem_ty (const Def *def) |
Removes recusively all occurences of mem from a type (sigma). | |
const Def * | mim::plug::mem::strip_mem (const Def *def) |
Recursively removes all occurrences of mem from a tuple. | |
%mem.lea | |
const Def * | mim::plug::mem::op_lea (const Def *ptr, const Def *index) |
const Def * | mim::plug::mem::op_lea_unsafe (const Def *ptr, const Def *i) |
const Def * | mim::plug::mem::op_lea_unsafe (const Def *ptr, u64 i) |
%mem.remem | |
const Def * | mim::plug::mem::op_remem (const Def *mem) |
%mem.alloc | |
const Def * | mim::plug::mem::op_alloc (const Def *type, const Def *mem) |
%mem.slot | |
const Def * | mim::plug::mem::op_slot (const Def *type, const Def *mem) |
%mem.malloc | |
const Def * | mim::plug::mem::op_malloc (const Def *type, const Def *mem) |
%mem.mslot | |
const Def * | mim::plug::mem::op_mslot (const Def *type, const Def *mem, const Def *id) |