MimIR
0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
matrix.cpp
Go to the documentation of this file.
1
#include "
mim/plug/matrix/matrix.h
"
2
3
#include <
mim/pass.h
>
4
#include <
mim/plugin.h
>
5
6
#include "
mim/plug/matrix/pass/lower_matrix_highlevel.h
"
7
#include "
mim/plug/matrix/pass/lower_matrix_lowlevel.h
"
8
#include "
mim/plug/matrix/pass/lower_matrix_mediumlevel.h
"
9
10
using namespace
mim
;
11
using namespace
mim::plug
;
12
13
void
reg_stages
(
Flags2Stages
& stages) {
14
// clang-format off
15
// phases
16
Stage::hook<matrix::lower_matrix_low_level, matrix::LowerMatrixLowLevel >
(stages);
17
// passes
18
Stage::hook<matrix::lower_matrix_high_level_map_reduce, matrix::LowerMatrixHighLevelMapRed>
(stages);
19
Stage::hook<matrix::lower_matrix_medium_level, matrix::LowerMatrixMediumLevel >
(stages);
20
// clang-format on
21
}
22
23
extern
"C"
MIM_EXPORT
Plugin
mim_get_plugin
() {
return
{
"matrix"
,
matrix::register_normalizers
,
reg_stages
,
nullptr
}; }
reg_stages
void reg_stages(Flags2Stages &stages)
Definition
affine.cpp:11
mim::Stage::hook
static void hook(Flags2Stages &stages)
Definition
pass.h:57
MIM_EXPORT
#define MIM_EXPORT
Definition
config.h:16
lower_matrix_highlevel.h
lower_matrix_lowlevel.h
lower_matrix_mediumlevel.h
reg_stages
void reg_stages(Flags2Stages &stages)
Definition
matrix.cpp:13
matrix.h
mim::plug::matrix::register_normalizers
void register_normalizers(Normalizers &normalizers)
mim::plug
Definition
lower_for.h:5
mim
Definition
ast.h:14
mim::Flags2Stages
absl::flat_hash_map< flags_t, std::function< std::unique_ptr< Stage >(World &)> > Flags2Stages
Maps an an axiom of a Stage to a function that creates one.
Definition
plugin.h:22
mim::mim_get_plugin
mim::Plugin mim_get_plugin()
pass.h
plugin.h
mim::Plugin
Basic info and registration function pointer to be returned from a specific plugin.
Definition
plugin.h:30
src
mim
plug
matrix
matrix.cpp
Generated by
1.13.2