Classes | |
| class | LowerPtr |
| Lowers the buffer abstraction to the low-level pointer representation. More... | |
Enumerations | |
%buffer.alloc | |
| enum class | alloc : flags_t |
%buffer.init | |
| enum class | init : flags_t |
%buffer.constant | |
| enum class | constant : flags_t |
%buffer.copy | |
| enum class | copy : flags_t |
%buffer.lower_ptr | |
| enum class | lower_ptr : flags_t |
Functions | |
| const Def * | type_buf (const Def *r, const Def *s, const Def *T) |
| The buffer type buffer.Buf (r, s, T). | |
| const Def * | op_alloc (const Def *r, const Def *s, const Def *T, const Def *mem) |
| buffer.alloc (r, s, T) mem ↦ [mem.M 0, buffer.Buf (r, s, T)]. | |
| const Def * | op_read (const Def *r, const Def *s, const Def *T, const Def *mem, const Def *buf, const Def *idx) |
| buffer.read (r, s, T) (mem, buf, idx) ↦ [mem.M 0, T]. | |
| const Def * | op_write (const Def *r, const Def *s, const Def *T, const Def *mem, const Def *buf, const Def *idx, const Def *val) |
| buffer.write (r, s, T) (mem, buf, idx, val) ↦ [mem.M 0, buffer.Buf (r, s, T)]. | |
| const Def * | op_copy (const Def *r, const Def *s, const Def *T, const Def *mem, const Def *dst, const Def *src) |
| buffer.copy (r, s, T) (mem, dst, src) ↦ mem.M 0 (copies the whole buffer src into dst). | |
| const Def * | op_init (const Def *r, const Def *s, const Def *T, const Def *mem, const Def *val) |
| buffer.init (r, s, T) (mem, val) ↦ [mem.M 0, buffer.Buf (r, s, T)] (initialised with the array value val). | |
| const Def * | op_constant (const Def *r, const Def *s, const Def *T, const Def *mem, const Def *val) |
| buffer.constant (r, s, T) (mem, val) ↦ [mem.M 0, buffer.Buf (r, s, T)] (every element initialised to val). | |
| void | reg_phases (Flags2Phases &phases) |
| void | register_normalizers (Normalizers &normalizers) |
Variables | |
| static constexpr plugin_t | Plugin_Id = 0xd61c71930000000 |
%buffer.Buf | |
| enum class | Buf : flags_t |
| const Def * | normalize_Buf (const Def *, const Def *callee, const Def *arg) |
| Buf (r, s, T) with literal size-1 axes in s ↦ Buf (r', s', T) with those axes dropped. | |
%buffer.read | |
| enum class | read : flags_t |
| const Def * | normalize_read (const Def *type, const Def *, const Def *arg) |
| read (constant v) idx ↦ v. | |
%buffer.write | |
| enum class | write : flags_t |
| const Def * | normalize_write (const Def *, const Def *, const Def *) |
%buffer.shape | |
| enum class | shape : flags_t |
| const Def * | normalize_shape (const Def *type, const Def *, const Def *arg) |
| shape buf i ↦ the i-th size, read off the buffer's type. | |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Buf (r, s, T) with literal size-1 axes in s ↦ Buf (r', s', T) with those axes dropped.
This mirrors the folding of the corresponding array types («3, 1; T» ≡ «3; T»), so buffer types derived from logical shapes agree with the (folded) boundary types by construction.
Definition at line 12 of file normalizers.cpp.
References mim::Lit::isa(), mim::Def::projs(), and mim::Def::world().
Definition at line 30 of file normalizers.cpp.
References mim::Axm::isa(), and mim::Def::projs().
shape buf i ↦ the i-th size, read off the buffer's type.
Definition at line 44 of file normalizers.cpp.
References mim::Axm::isa(), and mim::Def::projs().
Definition at line 41 of file normalizers.cpp.
|
inline |
buffer.alloc (r, s, T) mem ↦ [mem.M 0, buffer.Buf (r, s, T)].
Definition at line 16 of file buffer.h.
Referenced by mim::plug::matrix::phase::LowerMatrixMediumLevel::rewrite_imm_App().
|
inline |
buffer.read (r, s, T) (mem, buf, idx) ↦ [mem.M 0, T].
Definition at line 22 of file buffer.h.
Referenced by mim::plug::matrix::op_read().
|
inline |
buffer.write (r, s, T) (mem, buf, idx, val) ↦ [mem.M 0, buffer.Buf (r, s, T)].
Definition at line 29 of file buffer.h.
Referenced by mim::plug::matrix::phase::LowerMatrixMediumLevel::rewrite_imm_App().
| void mim::plug::buffer::reg_phases | ( | Flags2Phases & | phases | ) |
Definition at line 11 of file buffer.cpp.
References mim::Phase::hook().
Referenced by mim_get_plugin().
| void mim::plug::buffer::register_normalizers | ( | Normalizers & | normalizers | ) |
Referenced by mim_get_plugin().