Tensor Comprehensions
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
schedule_tree_matcher.h
Go to the documentation of this file.
1 
16 #pragma once
17 
18 #include <tuple>
19 #include <utility>
20 #include <vector>
21 
24 
25 namespace tc {
26 namespace polyhedral {
27 
28 // Return the union of the reduction init statements as well as
29 // the identifiers of all reduction update statements
30 // that appear in "domain", assuming "domain" only contains
31 // reduction init and update statements.
32 // If "domain" contains any other statements, then return an empty vector
33 // of identifiers.
34 std::pair<isl::union_set, std::vector<isl::id>> reductionInitsUpdates(
35  isl::union_set domain,
36  const Scop& scop);
37 
38 // Find the first band member that corresponds to a reduction.
39 // TODO: heuristic to choose the "best" band member in presence of multiple
40 // reductions.
41 int findFirstReductionDim(isl::multi_union_pw_aff islMupa, const Scop& scop);
42 
43 } // namespace polyhedral
44 } // namespace tc
45