|
| send_recv (std::string iteration_domain_str, tiramisu::computation *producer, tiramisu::expr rhs, xfer_prop prop, bool schedule_this_computation, std::vector< expr > dims, tiramisu::function *fct) |
|
virtual bool | is_send_recv () const override |
|
| communicator (std::string iteration_domain_str, tiramisu::expr rhs, bool schedule_this_computation, tiramisu::primitive_t data_type, tiramisu::function *fct) |
|
| communicator (std::string iteration_domain_str, tiramisu::expr rhs, bool schedule_this_computation, tiramisu::primitive_t, tiramisu::xfer_prop prop, tiramisu::function *fct) |
|
xfer_prop | get_xfer_props () const |
|
tiramisu::expr | get_num_elements () const |
|
void | add_dim (tiramisu::expr size) |
|
std::vector< communicator * > | collapse (int level, tiramisu::expr collapse_from_iter, tiramisu::expr collapse_until_iter, tiramisu::expr num_collapsed) |
| Collapse a loop level. More...
|
|
void | collapse_many (std::vector< collapse_group > collapse_each) |
| Collapse several consecutive loop levels (must collapse from innermost towards outermost). More...
|
|
| computation (std::string iteration_domain, tiramisu::expr e, bool schedule_this_computation, tiramisu::primitive_t t, tiramisu::function *fct) |
| Constructor for computations. More...
|
|
| computation (std::string name, std::vector< var > iterator_variables, tiramisu::expr e, bool schedule_this_computation) |
| Constructor for computations. More...
|
|
| computation (std::vector< var > iterator_variables, tiramisu::expr e) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
| computation (std::string name, std::vector< var > iterator_variables, tiramisu::expr e) |
| Constructor for computations. More...
|
|
| computation (std::vector< var > iterator_variables, tiramisu::expr e, bool schedule_this_computation) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
| computation (std::string name, std::vector< var > iterator_variables, primitive_t t) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.t is the type of the computation, i.e. More...
|
|
| computation (std::vector< var > iterator_variables, primitive_t t) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual bool | is_send () const |
|
virtual bool | is_recv () const |
|
virtual bool | is_wait () const |
|
void | add_associated_let_stmt (std::string access_name, tiramisu::expr e) |
| Add a let statement that is associated to this computation. More...
|
|
void | unschedule_this_computation () |
| Don't scheduled a previously scheduled computation. More...
|
|
virtual void | add_definitions (std::string iteration_domain_str, tiramisu::expr e, bool schedule_this_computation, tiramisu::primitive_t t, tiramisu::function *fct) |
| Add definitions of computations that have the same name as this computation. More...
|
|
void | add_predicate (tiramisu::expr predicate) |
| Add a predicate (condition) on the computation. More...
|
|
void | after (computation &comp, tiramisu::var iterator) |
| Schedule this computation to run after the computation comp . More...
|
|
void | after (computation &comp, int level) |
| This function is equivalent to void after(computation &comp, tiramisu::var iterator); except that it uses loop level numbers (0, 1, 2, ...) instead of using loop variables (tiramisu::var). More...
|
|
void | allocate_and_map_buffer_automatically (tiramisu::argument_t type=tiramisu::a_temporary) |
|
void | apply_transformation_on_schedule (std::string map_str) |
| Apply a transformation on the schedule. More...
|
|
void | between (computation &before_comp, tiramisu::var before_l, computation &after_comp, tiramisu::var after_l) |
| Schedule this computation to run after before_comp at the loop level before_l , and before after_comp at loop level after_l . More...
|
|
tiramisu::buffer * | get_automatically_allocated_buffer () |
| Return the buffer that was allocated automatically using high level data mapping functions. More...
|
|
void | interchange (tiramisu::var L0, tiramisu::var L1) |
| Interchange (swap) the two loop levels L0 and L1 . More...
|
|
void | interchange (int L0, int L1) |
| Identical to void interchange(tiramisu::var L0, tiramisu::var L1);. More...
|
|
void | mark_as_let_statement () |
| Mark this statement as a let statement. More...
|
|
void | mark_as_library_call () |
| Mark this statement as a library call. More...
|
|
void | parallelize (tiramisu::var L) |
| Tag the loop level L to be parallelized. More...
|
|
void | set_wait_access (std::string access_str) |
|
void | set_wait_access (isl_map *access) |
|
void | set_expression (const tiramisu::expr &e) |
| Set the expression of the computation. More...
|
|
void | set_inline (bool is_inline=true) |
| Sets whether the computation is inline or not, based on the value of is_inline . More...
|
|
const bool | is_inline_computation () const |
| Returns true if and only if the computation is inline. More...
|
|
void | shift (tiramisu::var L0, int n) |
| Shift the loop level L0 of the iteration space by n iterations. More...
|
|
void | skew (tiramisu::var i, tiramisu::var j, int f, tiramisu::var ni, tiramisu::var nj) |
| Apply loop skewing on the loop levels i and j with a skewing factor of f . More...
|
|
void | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, int factor, tiramisu::var ni, tiramisu::var nj, tiramisu::var nk) |
| Apply loop skewing on the loop levels i , j and k with a skewing factor of f . More...
|
|
void | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, tiramisu::var l, int factor, tiramisu::var ni, tiramisu::var nj, tiramisu::var nk, tiramisu::var nl) |
| Apply loop skewing on the loop levels i , j , k , l with a skewing factor of f . More...
|
|
void | skew (tiramisu::var i, tiramisu::var j, int factor) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
void | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, int factor) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
void | skew (tiramisu::var i, tiramisu::var j, tiramisu::var k, tiramisu::var l, int factor) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
void | skew (int i, int j, int factor) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
void | skew (int i, int j, int k, int factor) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
void | skew (int i, int j, int k, int l, int factor) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
void | split (int L0, int sizeX) |
| Identical to void split(tiramisu::var L0, int sizeX);. More...
|
|
void | storage_fold (tiramisu::var dim, int f) |
| Fold the storage of the computation. More...
|
|
tiramisu::computation * | store_at (tiramisu::computation &comp, tiramisu::var L0) |
| Allocate the storage of this computation in the loop level L0 . More...
|
|
void | tag_parallel_level (tiramisu::var L) |
| Tag the loop level L to be parallelized. More...
|
|
void | tag_parallel_level (int L) |
| Identical to void tag_parallel_level(int L);. More...
|
|
void | tag_vector_level (tiramisu::var L, int len) |
| Tag the loop level L to be vectorized. More...
|
|
void | tag_vector_level (int L, int len) |
| Identical to void tag_vector_level(tiramisu::var L, int len);. More...
|
|
void | tag_unroll_level (tiramisu::var L) |
| Tag the loop level L to be unrolled. More...
|
|
void | tag_unroll_level (int L) |
| Identical to void tag_unroll_level(tiramisu::var L);. More...
|
|
template<typename... Args> |
tiramisu::expr | operator() (Args...args) |
| Access operator: C0(i,j) represents an access to the element (i,j) of the computation C0. More...
|
|
| operator expr () |
|
void | after_low_level (computation &comp, int level) |
| Schedule this computation to run after the computation comp . More...
|
|
void | after_low_level (computation &comp, std::vector< int > levels) |
| Schedule this computation to run after the computation comp . More...
|
|
void | before (computation &consumer, tiramisu::var L) |
| Schedule this computation to run before the computation consumer at the loop level L . More...
|
|
void | store_in (buffer *buff) |
| Store this computation in buff . More...
|
|
void | store_in (buffer *buff, std::vector< expr > iterators) |
| Store this computation in buff . More...
|
|
void | compute_at (computation &consumer, tiramisu::var L) |
| This function assumes that consumer consumes values produced by this computation (which is the producer). More...
|
|
void | compute_at (computation &consumer, int L) |
| Store this computation in buff . More...
|
|
int | compute_maximal_AST_depth () |
| Generates the time-space domain and construct an AST that scans that time-space domain, then compute the depth of this AST. More...
|
|
void | dump_iteration_domain () const |
| Dump the iteration domain of the computation. More...
|
|
void | dump_schedule () const |
| Dump the schedule of the computation. More...
|
|
void | dump () const |
| Dump the computation on stdout. More...
|
|
void | fuse_after (tiramisu::var lev, computation &comp) |
| Fuse this computation with the computation passed as argument in the same loop. More...
|
|
void | gen_time_space_domain () |
| Generate the time-space domain of the computation. More...
|
|
void | drop_rank_iter (var level) |
| Specify that the rank loop iterator should be removed from linearization. More...
|
|
tiramisu::primitive_t | get_data_type () const |
| Get the data type of the computation. More...
|
|
const tiramisu::expr & | get_expr () const |
| Return the Tiramisu expression associated with the computation. More...
|
|
isl_set * | get_iteration_domain () const |
| Return the iteration domain of the computation. More...
|
|
tiramisu::computation & | get_last_update () |
| Get the last update of a computation. More...
|
|
int | get_loop_level_number_from_dimension_name (std::string dim_name) |
| Search the time-space domain (the range of the schedule) and return the loop level number that correspond to the dimension named dim . More...
|
|
const std::string & | get_name () const |
| Return the name of the computation. More...
|
|
computation * | get_predecessor () |
| Returns a pointer to the computation scheduled immediately before this computation, or a null pointer if none exist. More...
|
|
tiramisu::computation & | get_update (int index) |
| Returns the index update that has been added to this computation such that: More...
|
|
isl_map * | get_schedule () const |
| Get the schedule of the computation. More...
|
|
void | gpu_tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY) |
| Tile the computation and then tag the outermost tile dimension to be mapped to GPU blocks and tag the innermost tile dimensions to be mapped to GPU threads. More...
|
|
void | gpu_tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L0_inner, tiramisu::var L1_inner) |
| Store this computation in buff . More...
|
|
void | gpu_tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ) |
| Store this computation in buff . More...
|
|
void | gpu_tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L2_outer, tiramisu::var L0_inner, tiramisu::var L1_inner, tiramisu::var L2_inner) |
| Store this computation in buff . More...
|
|
void | set_access (std::string access_str) |
| Set the access relation of the computation. More...
|
|
void | set_access (isl_map *access) |
| Set the access relation of the computation. More...
|
|
void | set_low_level_schedule (isl_map *map) |
| Set the schedule indicated by map . More...
|
|
void | set_low_level_schedule (std::string map_str) |
| Set the schedule indicated by map . More...
|
|
void | split (tiramisu::var L0, int sizeX) |
| Split the loop level L0 of the iteration space into two new loop levels. More...
|
|
void | split (tiramisu::var L0, int sizeX, tiramisu::var L0_outer, tiramisu::var L0_inner) |
| Split the loop level L0 of the iteration space into two new loop levels. More...
|
|
void | tag_gpu_level (tiramisu::var L0, tiramisu::var L1) |
| Tag the loop level L0 and L1 to be mapped to GPU. More...
|
|
void | tag_gpu_level (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, tiramisu::var L3) |
| Tag the loop level L0 and L1 to be mapped to GPU. More...
|
|
void | tag_gpu_level (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, tiramisu::var L3, tiramisu::var L4, tiramisu::var L5) |
| Tag the loop level L0 and L1 to be mapped to GPU. More...
|
|
void | tag_distribute_level (tiramisu::var L) |
| Tag the loop level L to be distributed. More...
|
|
void | tag_distribute_level (int L) |
| Tag the loop level L to be distributed. More...
|
|
computation & | then (computation &next_computation, tiramisu::var L) |
| Schedule this computation to run before the computation next_computation at the loop level L and return next_computation . More...
|
|
void | tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY) |
| Tile the two loop levels L0 and L1 with rectangular tiling. More...
|
|
void | tile (tiramisu::var L0, tiramisu::var L1, int sizeX, int sizeY, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L0_inner, tiramisu::var L1_inner) |
| Tile the two loop levels L0 and L1 with rectangular tiling. More...
|
|
void | tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ) |
| Tile the two loop levels L0 and L1 with rectangular tiling. More...
|
|
void | tile (tiramisu::var L0, tiramisu::var L1, tiramisu::var L2, int sizeX, int sizeY, int sizeZ, tiramisu::var L0_outer, tiramisu::var L1_outer, tiramisu::var L2_outer, tiramisu::var L0_inner, tiramisu::var L1_inner, tiramisu::var L2_inner) |
| Tile the two loop levels L0 and L1 with rectangular tiling. More...
|
|
void | tile (int L0, int L1, int sizeX, int sizeY) |
| Tile the two loop levels L0 and L1 with rectangular tiling. More...
|
|
void | tile (int L0, int L1, int L2, int sizeX, int sizeY, int sizeZ) |
| Tile the two loop levels L0 and L1 with rectangular tiling. More...
|
|
void | unroll (tiramisu::var L, int fac) |
| Unroll the loop level L with an unrolling factor fac . More...
|
|
void | unroll (tiramisu::var L, int fac, tiramisu::var L_outer, tiramisu::var L_inner) |
| Unroll the loop level L with an unrolling factor fac . More...
|
|
void | vectorize (tiramisu::var L, int v) |
| Vectorize the loop level L . More...
|
|
void | vectorize (tiramisu::var L, int v, tiramisu::var L_outer, tiramisu::var L_inner) |
| Vectorize the loop level L . More...
|
|