gpu.c: group_tile: reimplement in terms of mapping to shared/private tile
[ppcg.git] / ppcg.h
blobf3b0c6dcd764a7cf7f1130516bddcb3a0b94ca75
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 int ppcg_extract_base_name(char *name, const char *input);
11 /* Representation of the scop for use inside PPCG.
13 * "start" and "end" are file offsets of the corresponding program text.
14 * "context" represents constraints on the parameters.
15 * "domain" is the union of all iteration domains.
16 * "call" contains the iteration domains of statements with a call expression.
17 * "reads" contains all read accesses.
18 * "live_in" contains read accesses that have no corresponding
19 * writes in the scop.
20 * "writes" contains all write accesses.
21 * "kills" contains all kill accesses.
22 * "dep_flow" represents the flow dependences.
23 * "dep_false" represents the false (anti and output) dependences.
24 * "schedule" represents the (original) schedule.
26 * "arrays" and "stmts" are copies of the corresponding elements
27 * of the original pet_scop.
29 struct ppcg_scop {
30 unsigned start;
31 unsigned end;
33 isl_set *context;
34 isl_union_set *domain;
35 isl_union_set *call;
36 isl_union_map *reads;
37 isl_union_map *live_in;
38 isl_union_map *writes;
39 isl_union_map *kills;
40 isl_union_map *dep_flow;
41 isl_union_map *dep_false;
42 isl_union_map *schedule;
44 int n_array;
45 struct pet_array **arrays;
46 int n_stmt;
47 struct pet_stmt **stmts;
50 #endif