Chih-Hung Hsieh | a5ef72f | 2014-11-05 10:47:59 -0800 | [diff] [blame^] | 1 | #ifndef CLOOG_UNION_DOMAIN_H |
| 2 | #define CLOOG_UNION_DOMAIN_H |
| 3 | |
| 4 | #if defined(__cplusplus) |
| 5 | extern "C" { |
| 6 | #endif |
| 7 | |
| 8 | struct osl_scop; |
| 9 | |
| 10 | /** |
| 11 | * CloogNamedDomainList structure: |
| 12 | * this structure reprensents a node of a linked list of CloogDomain structures. |
| 13 | */ |
| 14 | struct cloognameddomainlist { |
| 15 | CloogDomain *domain; /**< An element of the list. */ |
| 16 | CloogScattering *scattering; /**< Scattering function for domain. */ |
| 17 | char *name; /**< Name of the domain. */ |
| 18 | void *usr; /**< A pointer for library user's convenience. */ |
| 19 | struct cloognameddomainlist *next;/**< Pointer to the next element of the list.*/ |
| 20 | }; |
| 21 | typedef struct cloognameddomainlist CloogNamedDomainList; |
| 22 | |
| 23 | /** |
| 24 | * A structure representing the input domains and scattering functions. |
| 25 | */ |
| 26 | struct clooguniondomain { |
| 27 | int n_name[3]; |
| 28 | char **name[3]; |
| 29 | CloogNamedDomainList *domain; |
| 30 | CloogNamedDomainList **next_domain; |
| 31 | }; |
| 32 | typedef struct clooguniondomain CloogUnionDomain; |
| 33 | |
| 34 | enum cloog_dim_type { CLOOG_PARAM, CLOOG_ITER, CLOOG_SCAT }; |
| 35 | |
| 36 | CloogUnionDomain *cloog_union_domain_read(FILE *file, int nb_par, |
| 37 | CloogOptions *options); |
| 38 | CloogUnionDomain *cloog_union_domain_alloc(int nb_par); |
| 39 | CloogUnionDomain *cloog_union_domain_add_domain(CloogUnionDomain *ud, |
| 40 | const char *name, CloogDomain *domain, CloogScattering *scattering, |
| 41 | void *usr); |
| 42 | CloogUnionDomain *cloog_union_domain_set_name(CloogUnionDomain *ud, |
| 43 | enum cloog_dim_type type, int index, const char *name); |
| 44 | void cloog_union_domain_free(CloogUnionDomain *ud); |
| 45 | CloogUnionDomain *cloog_union_domain_from_osl_scop(CloogState *, |
| 46 | struct osl_scop *); |
| 47 | |
| 48 | #if defined(__cplusplus) |
| 49 | } |
| 50 | #endif |
| 51 | |
| 52 | #endif |