Prepare polybench_test.sh for multiple options
[ppcg.git] / ppcg.h
blob43938a5fd7b5d788d1aa268b98b929529a7b120b
1 #ifndef PPCG_H
2 #define PPCG_H
4 #include <isl/set.h>
5 #include <isl/union_set.h>
6 #include <isl/union_map.h>
7 #include <pet.h>
9 /* Representation of the scop for use inside PPCG.
11 * "context" represents constraints on the parameters.
12 * "domain" is the union of all iteration domains.
13 * "call" contains the iteration domains of statements with a call expression.
14 * "reads" contains all read accesses.
15 * "live_in" contains read accesses that have no corresponding
16 * writes in the scop.
17 * "writes" contains all write accesses.
18 * "kills" contains all kill accesses.
19 * "dep_flow" represents the flow dependences.
20 * "schedule" represents the (original) schedule.
22 * "arrays" and "stmts" are copies of the corresponding elements
23 * of the original pet_scop.
25 struct ppcg_scop {
26 isl_set *context;
27 isl_union_set *domain;
28 isl_union_set *call;
29 isl_union_map *reads;
30 isl_union_map *live_in;
31 isl_union_map *writes;
32 isl_union_map *kills;
33 isl_union_map *dep_flow;
34 isl_union_map *schedule;
36 int n_array;
37 struct pet_array **arrays;
38 int n_stmt;
39 struct pet_stmt **stmts;
42 #endif