MimIR
0.3-dev
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
lower_matrix_highlevel.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::matrix::phase
{
7
8
/// Resolves lowering of high level operations into medium/other high-level operations.
9
/// Some of these transformations could be done as normalizer.
10
/// We rewrite matrix operations like sum, transpose, and product into `map_reduce` operations.
11
/// The corresponding `map_reduce` operations are annexes in the `matrix` plugin.
12
13
class
LowerMatrixHighLevelMapRed
:
public
RWPhase
{
14
public
:
15
LowerMatrixHighLevelMapRed
(
World
&
world
,
flags_t
annex
)
16
:
RWPhase
(
world
,
annex
) {}
17
18
const
Def
*
rewrite_imm_App
(
const
App
*)
final
;
19
};
20
21
}
// namespace mim::plug::matrix::phase
mim::App
Definition
lam.h:224
mim::Def
Base class for all Defs.
Definition
def.h:261
mim::Phase::annex
flags_t annex() const
Definition
phase.h:81
mim::RWPhase::RWPhase
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition
phase.h:316
mim::RWPhase::world
World & world()=delete
Hides both and forbids direct access.
mim::World
The World represents the whole program and manages creation of MimIR nodes (Defs).
Definition
world.h:36
mim::plug::matrix::phase::LowerMatrixHighLevelMapRed::LowerMatrixHighLevelMapRed
LowerMatrixHighLevelMapRed(World &world, flags_t annex)
Definition
lower_matrix_highlevel.h:15
mim::plug::matrix::phase::LowerMatrixHighLevelMapRed::rewrite_imm_App
const Def * rewrite_imm_App(const App *) final
Definition
lower_matrix_highlevel.cpp:32
def.h
mim::plug::matrix::phase
Definition
lower_aff.h:6
mim::flags_t
u64 flags_t
Definition
types.h:39
phase.h
include
mim
plug
matrix
phase
lower_matrix_highlevel.h
Generated by
1.16.1