Home | History | Annotate | Download | only in cloog
      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
     53