Thorin 1.9.0
The Higher ORder INtermediate representation
Loading...
Searching...
No Matches
mem.h File Reference
#include <thorin/axiom.h>
#include <thorin/lam.h>
#include <thorin/world.h>
#include <thorin/plug/core/core.h>
#include "thorin/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  thorin
 
namespace  thorin::plug
 
namespace  thorin::plug::mem
 The mem Plugin
 

Enumerations

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

Functions

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