Tensor Comprehensions
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
unroll.h
Go to the documentation of this file.
1 
16 #pragma once
17 
19 
20 namespace tc {
21 namespace polyhedral {
22 
23 /*
24  * For each descendant band node of "st" in "root" (possibly including
25  * "st" itself) and for each member of the band, mark it for unrolling
26  * if the total number of instances executed by the band member
27  * is smaller than or equal to the unroll value (if any).
28  * Only unroll values greater than 1 can have any effect.
29  *
30  * The number of executed instances is estimated based the number
31  * of values attained by the corresponding affine function given
32  * fixed values of the outer bands and members.
33  * The prefix schedule is therefore computed first,
34  * taking into account the actual set of statement instances and
35  * the filters along the path from "root" to "st".
36  */
37 void markUnroll(
38  detail::ScheduleTree* root,
39  detail::ScheduleTree* st,
40  uint64_t unroll);
41 
42 } // namespace polyhedral
43 } // namespace tc