Thorin 1.9.0
The Higher ORder INtermediate representation
|
Classes | |
class | LowerMatrixHighLevelMapRed |
Resolves lowering of high level operations into medium/other high-level operations. More... | |
class | LowerMatrixLowLevel |
In this phase, we lower all matrix operations and types to the low-level representation using pointers. More... | |
class | LowerMatrixMediumLevel |
In this step, we lower map_reduce operations into affine for loops making the iteration scheme explicit. More... | |
Enumerations | |
%matrix.Mat | |
enum | Mat : flags_t |
%matrix.constMat | |
enum | constMat : flags_t |
%matrix.init | |
enum | init : flags_t |
%matrix.sum | |
enum | sum : flags_t |
%matrix.lower_matrix_high_level_map_reduce | |
enum | lower_matrix_high_level_map_reduce : flags_t |
%matrix.lower_matrix_medium_level | |
enum | lower_matrix_medium_level : flags_t |
%matrix.internal_map_reduce_cleanup | |
enum | internal_map_reduce_cleanup : flags_t |
%matrix.lower_matrix_low_level | |
enum | lower_matrix_low_level : flags_t |
Functions | |
const Def * | zero_int (World &w, Ref n, Ref S, Ref mem, nat_t m) |
mat.zero: Π [n: .Nat, S: «n; .Nat», m: .Nat] -> mat.Mat (n,S,(.Idx m)); | |
const Def * | op_read (Ref mem, Ref matrix, Ref idx) |
u64 | get_max_index (u64 init, Defs inputs) |
Matrix normalizer for product on two-dimensional matrices. | |
std::pair< Lam *, Ref > | counting_for (Ref bound, DefVec acc, Ref exit, const char *name="for_body") |
void | register_normalizers (Normalizers &normalizers) |
Variables | |
static constexpr plugin_t | Plugin_Id = 0x3825532990000000 |
%matrix.shape | |
enum | shape : flags_t |
Ref | normalize_shape (Ref type, Ref callee, Ref arg) |
Normalizer for transpose operations. | |
%matrix.read | |
enum | read : flags_t |
Ref | normalize_read (Ref type, Ref callee, Ref arg) |
Normalizer for read opertions. | |
%matrix.insert | |
enum | insert : flags_t |
Ref | normalize_insert (Ref type, Ref callee, Ref arg) |
Normalizer for write operations TODO: implement. | |
%matrix.prod | |
enum | prod : flags_t |
Ref | normalize_prod (Ref type, Ref callee, Ref arg) |
%matrix.transpose | |
enum | transpose : flags_t |
Ref | normalize_transpose (Ref type, Ref callee, Ref arg) |
%matrix.map_reduce | |
enum | map_reduce : flags_t |
Ref | normalize_map_reduce (Ref type, Ref callee, Ref arg) |
map_reduce normalizers | |
enum thorin::plug::matrix::Mat : flags_t |
enum thorin::plug::matrix::sum : flags_t |
std::pair< Lam *, Ref > thorin::plug::matrix::counting_for | ( | Ref | bound, |
DefVec | acc, | ||
Ref | exit, | ||
const char * | name = "for_body" |
||
) |
Definition at line 26 of file lower_matrix_mediumlevel.cpp.
References thorin::plug::affine::op_for(), thorin::World::tuple(), thorin::Def::type(), and thorin::Def::world().
Referenced by thorin::plug::matrix::LowerMatrixMediumLevel::rewrite_().
Matrix normalizer for product on two-dimensional matrices.
Definition at line 76 of file normalizers.cpp.
References thorin::Lit::isa(), and thorin::Def::projs().
Normalizer for write operations TODO: implement.
Definition at line 41 of file normalizers.cpp.
References thorin::World::raw_app(), and thorin::Def::world().
map_reduce normalizers
Definition at line 97 of file normalizers.cpp.
References thorin::World::raw_app(), and thorin::Def::world().
Definition at line 104 of file normalizers.cpp.
References thorin::World::raw_app(), and thorin::Def::world().
Normalizer for read opertions.
Definition at line 19 of file normalizers.cpp.
References thorin::Def::projs(), and thorin::Def::world().
Normalizer for transpose operations.
Definition at line 57 of file normalizers.cpp.
References thorin::Def::projs(), and thorin::Def::world().
Definition at line 109 of file normalizers.cpp.
References thorin::World::raw_app(), and thorin::Def::world().
Definition at line 19 of file matrix.h.
References thorin::Def::type(), and thorin::Def::world().
Referenced by thorin::plug::matrix::LowerMatrixMediumLevel::rewrite_().
void thorin::plug::matrix::register_normalizers | ( | Normalizers & | normalizers | ) |
Referenced by thorin_get_plugin().