MimIR
0.5-dev
MimIR is my Intermediate Representation
Toggle main menu visibility
Loading...
Searching...
No Matches
lower_ptr.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
mim/def.h
>
4
#include <
mim/phase.h
>
5
6
namespace
mim::plug::buffer
{
7
8
/// Lowers the `buffer` abstraction to the low-level pointer representation.
9
/// The `Buf` type is replaced by a pointer to nested arrays.
10
/// - `alloc` is replaced with `mem.alloc`
11
/// - `read` becomes `mem.lea` + `mem.load`
12
/// - `write` becomes `mem.lea` + `mem.store`
13
class
LowerPtr
:
public
RWPhase
{
14
public
:
15
using
RWPhase::RWPhase
;
16
17
const
Def
*
rewrite_imm_App
(
const
App
*)
override
;
18
};
19
20
}
// namespace mim::plug::buffer
mim::App
Definition
lam.h:215
mim::Def
Base class for all Defs.
Definition
def.h:289
mim::RWPhase::RWPhase
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition
phase.h:334
mim::plug::buffer::LowerPtr
Lowers the buffer abstraction to the low-level pointer representation.
Definition
lower_ptr.h:13
mim::plug::buffer::LowerPtr::rewrite_imm_App
const Def * rewrite_imm_App(const App *) override
Definition
lower_ptr.cpp:13
mim::plug::buffer::LowerPtr::RWPhase
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition
phase.h:334
def.h
mim::plug::buffer
The buffer Plugin
Definition
buffer.h:8
phase.h
include
mim
plug
buffer
phase
lower_ptr.h
Generated by
1.18.0