From: Sven Verdoolaege Date: Wed, 27 Mar 2013 11:09:23 +0000 (+0100) Subject: declare isl_*_list together with isl_* X-Git-Tag: isl-0.12~130 X-Git-Url: https://repo.or.cz/w/isl.git/commitdiff_plain/3e27dfa1440571ecd60acd92dbf819cafbeb701f declare isl_*_list together with isl_* Some of the isl_*_list types were declared together in isl/list.h. It seems cleaner to declare them together with the corresponding isl_* instead. Similarly, these types were defined together in isl_list_private.h and are now defined together with the corresponding isl_*. Signed-off-by: Sven Verdoolaege --- diff --git a/Makefile.am b/Makefile.am index 72184980..055cbc5c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -83,8 +83,6 @@ libisl_la_SOURCES = \ isl_hmap_map_basic_set.h \ isl_ilp.c \ isl_input.c \ - isl_list.c \ - isl_list_private.h \ isl_local_space_private.h \ isl_local_space.c \ isl_lp.c \ @@ -122,6 +120,7 @@ libisl_la_SOURCES = \ isl_scan.h \ isl_schedule.c \ isl_schedule_private.h \ + isl_set_list.c \ isl_sort.c \ isl_sort.h \ isl_space.c \ diff --git a/include/isl/aff_type.h b/include/isl/aff_type.h index e5308c70..ce19f1df 100644 --- a/include/isl/aff_type.h +++ b/include/isl/aff_type.h @@ -1,12 +1,22 @@ #ifndef ISL_AFF_TYPE_H #define ISL_AFF_TYPE_H +#include + +#if defined(__cplusplus) +extern "C" { +#endif + struct isl_aff; typedef struct isl_aff isl_aff; +ISL_DECLARE_LIST(aff) + struct isl_pw_aff; typedef struct isl_pw_aff isl_pw_aff; +ISL_DECLARE_LIST(pw_aff) + struct isl_multi_aff; typedef struct isl_multi_aff isl_multi_aff; @@ -19,4 +29,8 @@ typedef struct isl_union_pw_multi_aff isl_union_pw_multi_aff; struct isl_multi_pw_aff; typedef struct isl_multi_pw_aff isl_multi_pw_aff; +#if defined(__cplusplus) +} +#endif + #endif diff --git a/include/isl/band.h b/include/isl/band.h index a94937b0..882393e4 100644 --- a/include/isl/band.h +++ b/include/isl/band.h @@ -13,6 +13,8 @@ extern "C" { struct isl_band; typedef struct isl_band isl_band; +ISL_DECLARE_LIST(band) + __isl_give isl_band *isl_band_copy(__isl_keep isl_band *band); void *isl_band_free(__isl_take isl_band *band); diff --git a/include/isl/constraint.h b/include/isl/constraint.h index 224e44d9..131db2f4 100644 --- a/include/isl/constraint.h +++ b/include/isl/constraint.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #if defined(__cplusplus) @@ -23,6 +24,8 @@ extern "C" { struct isl_constraint; typedef struct isl_constraint isl_constraint; +ISL_DECLARE_LIST(constraint) + isl_ctx *isl_constraint_get_ctx(__isl_keep isl_constraint *c); __isl_give isl_constraint *isl_equality_alloc(__isl_take isl_local_space *ls); diff --git a/include/isl/id.h b/include/isl/id.h index d237b236..4c457fbd 100644 --- a/include/isl/id.h +++ b/include/isl/id.h @@ -2,6 +2,7 @@ #define ISL_ID_H #include +#include #include #if defined(__cplusplus) @@ -11,6 +12,8 @@ extern "C" { struct isl_id; typedef struct isl_id isl_id; +ISL_DECLARE_LIST(id) + isl_ctx *isl_id_get_ctx(__isl_keep isl_id *id); __isl_give isl_id *isl_id_alloc(isl_ctx *ctx, diff --git a/include/isl/list.h b/include/isl/list.h index 3e953af0..0a772418 100644 --- a/include/isl/list.h +++ b/include/isl/list.h @@ -17,10 +17,11 @@ extern "C" { #endif -#define ISL_DECLARE_LIST(EL) \ +#define ISL_DECLARE_LIST_TYPE(EL) \ struct isl_##EL; \ struct isl_##EL##_list; \ -typedef struct isl_##EL##_list isl_##EL##_list; \ +typedef struct isl_##EL##_list isl_##EL##_list; +#define ISL_DECLARE_LIST_FN(EL) \ isl_ctx *isl_##EL##_list_get_ctx(__isl_keep isl_##EL##_list *list); \ __isl_give isl_##EL##_list *isl_##EL##_list_from_##EL( \ __isl_take struct isl_##EL *el); \ @@ -63,13 +64,9 @@ __isl_give isl_printer *isl_printer_print_##EL##_list( \ __isl_take isl_printer *p, __isl_keep isl_##EL##_list *list); \ void isl_##EL##_list_dump(__isl_keep isl_##EL##_list *list); -ISL_DECLARE_LIST(id) -ISL_DECLARE_LIST(constraint) -ISL_DECLARE_LIST(basic_set) -ISL_DECLARE_LIST(set) -ISL_DECLARE_LIST(aff) -ISL_DECLARE_LIST(pw_aff) -ISL_DECLARE_LIST(band) +#define ISL_DECLARE_LIST(EL) \ + ISL_DECLARE_LIST_TYPE(EL) \ + ISL_DECLARE_LIST_FN(EL) #if defined(__cplusplus) } diff --git a/include/isl/map_type.h b/include/isl/map_type.h index 67057e7e..148dc0d3 100644 --- a/include/isl/map_type.h +++ b/include/isl/map_type.h @@ -2,6 +2,7 @@ #define ISL_MAP_TYPE_H #include +#include #if defined(__cplusplus) extern "C" { @@ -15,12 +16,18 @@ typedef struct isl_map isl_map; #ifndef isl_basic_set struct __isl_subclass(isl_set) isl_basic_set; typedef struct isl_basic_set isl_basic_set; +ISL_DECLARE_LIST_TYPE(basic_set) #endif + #ifndef isl_set struct __isl_subclass(isl_union_set) isl_set; typedef struct isl_set isl_set; +ISL_DECLARE_LIST_TYPE(set) #endif +ISL_DECLARE_LIST_FN(basic_set) +ISL_DECLARE_LIST_FN(set) + #if defined(__cplusplus) } #endif diff --git a/isl_aff.c b/isl_aff.c index b0a7f331..de1a0ca2 100644 --- a/isl_aff.c +++ b/isl_aff.c @@ -19,12 +19,21 @@ #include #include #include -#include #include #include #include #include +#undef BASE +#define BASE aff + +#include + +#undef BASE +#define BASE pw_aff + +#include + __isl_give isl_aff *isl_aff_alloc_vec(__isl_take isl_local_space *ls, __isl_take isl_vec *v) { diff --git a/isl_aff_private.h b/isl_aff_private.h index 0dca8f5c..2fb245a9 100644 --- a/isl_aff_private.h +++ b/isl_aff_private.h @@ -16,6 +16,11 @@ struct isl_aff { isl_vec *v; }; +#undef EL +#define EL isl_aff + +#include + struct isl_pw_aff_piece { struct isl_set *set; struct isl_aff *aff; @@ -32,6 +37,11 @@ struct isl_pw_aff { struct isl_pw_aff_piece p[1]; }; +#undef EL +#define EL isl_pw_aff + +#include + struct isl_pw_multi_aff_piece { isl_set *set; isl_multi_aff *maff; diff --git a/isl_ast.c b/isl_ast.c index 05a79a45..6859e7f0 100644 --- a/isl_ast.c +++ b/isl_ast.c @@ -1,5 +1,4 @@ #include -#include #undef BASE #define BASE ast_expr diff --git a/isl_band.c b/isl_band.c index 18572d02..43e9f016 100644 --- a/isl_band.c +++ b/isl_band.c @@ -12,7 +12,11 @@ #include #include -#include + +#undef BASE +#define BASE band + +#include isl_ctx *isl_band_get_ctx(__isl_keep isl_band *band) { diff --git a/isl_band_private.h b/isl_band_private.h index 8f201f6b..ef0e0eda 100644 --- a/isl_band_private.h +++ b/isl_band_private.h @@ -33,6 +33,11 @@ struct isl_band { isl_band_list *children; }; +#undef EL +#define EL isl_band + +#include + __isl_give isl_band *isl_band_alloc(isl_ctx *ctx); __isl_give isl_union_map *isl_band_list_get_suffix_schedule( diff --git a/isl_constraint.c b/isl_constraint.c index 7f19658a..483e26c4 100644 --- a/isl_constraint.c +++ b/isl_constraint.c @@ -17,6 +17,11 @@ #include #include +#undef BASE +#define BASE constraint + +#include + isl_ctx *isl_constraint_get_ctx(__isl_keep isl_constraint *c) { return c ? isl_local_space_get_ctx(c->ls) : NULL; diff --git a/isl_constraint_private.h b/isl_constraint_private.h index 83143254..1a3b44e3 100644 --- a/isl_constraint_private.h +++ b/isl_constraint_private.h @@ -12,6 +12,11 @@ struct isl_constraint { isl_vec *v; }; +#undef EL +#define EL isl_constraint + +#include + struct isl_constraint *isl_basic_set_constraint(struct isl_basic_set *bset, isl_int **line); diff --git a/isl_id.c b/isl_id.c index 26f19c67..410218df 100644 --- a/isl_id.c +++ b/isl_id.c @@ -11,6 +11,11 @@ #include #include +#undef BASE +#define BASE id + +#include + /* A special, static isl_id to use as domains (and ranges) * of sets and parameters domains. * The user should never get a hold on this isl_id. diff --git a/isl_id_private.h b/isl_id_private.h index c583b31b..6266b475 100644 --- a/isl_id_private.h +++ b/isl_id_private.h @@ -28,6 +28,11 @@ struct isl_id { __isl_give void (*free_user)(void *user); }; +#undef EL +#define EL isl_id + +#include + uint32_t isl_hash_id(uint32_t hash, __isl_keep isl_id *id); extern isl_id isl_id_none; diff --git a/isl_list.c b/isl_list.c deleted file mode 100644 index bb926b71..00000000 --- a/isl_list.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2008-2009 Katholieke Universiteit Leuven - * - * Use of this software is governed by the MIT license - * - * Written by Sven Verdoolaege, K.U.Leuven, Departement - * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium - */ - -#include -#include -#include -#include -#include - -#undef BASE -#define BASE constraint - -#include - -#undef BASE -#define BASE basic_set - -#include - -#undef BASE -#define BASE set - -#include - -#undef BASE -#define BASE aff - -#include - -#undef BASE -#define BASE pw_aff - -#include - -#undef BASE -#define BASE band - -#include - -#undef BASE -#define BASE id - -#include diff --git a/isl_list_private.h b/isl_list_private.h deleted file mode 100644 index 26d56413..00000000 --- a/isl_list_private.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef ISL_LIST_PRIVATE_H -#define ISL_LIST_PRIVATE_H - -#include - -#undef EL -#define EL isl_constraint - -#include - -#undef EL -#define EL isl_basic_set - -#include - -#undef EL -#define EL isl_set - -#include - -#undef EL -#define EL isl_aff - -#include - -#undef EL -#define EL isl_pw_aff - -#include - -#undef EL -#define EL isl_band - -#include - -#undef EL -#define EL isl_id - -#include - -#endif diff --git a/isl_list_templ.h b/isl_list_templ.h index 9c60f5a3..893f9d91 100644 --- a/isl_list_templ.h +++ b/isl_list_templ.h @@ -13,12 +13,4 @@ struct LIST(EL) { struct EL *p[1]; }; -#define ISL_DECLARE_LIST_PRIVATE(EL) \ -__isl_give isl_##EL##_list *isl_##EL##_list_dup( \ - __isl_keep isl_##EL##_list *list); - -ISL_DECLARE_LIST_PRIVATE(basic_set) -ISL_DECLARE_LIST_PRIVATE(set) -ISL_DECLARE_LIST_PRIVATE(aff) -ISL_DECLARE_LIST_PRIVATE(pw_aff) -ISL_DECLARE_LIST_PRIVATE(band) +__isl_give LIST(EL) *FN(LIST(EL),dup)(__isl_keep LIST(EL) *list); diff --git a/isl_map.c b/isl_map.c index 06adfda4..9052c19d 100644 --- a/isl_map.c +++ b/isl_map.c @@ -18,7 +18,6 @@ #include #include "isl_space_private.h" #include "isl_equalities.h" -#include #include #include #include diff --git a/isl_map_private.h b/isl_map_private.h index 5da97beb..93010dfc 100644 --- a/isl_map_private.h +++ b/isl_map_private.h @@ -13,6 +13,10 @@ #define isl_basic_set isl_basic_map #define isl_set isl_map #define isl_basic_set_list isl_basic_map_list +#define isl_set_list isl_map_list +#include +ISL_DECLARE_LIST(basic_map) +ISL_DECLARE_LIST(map) #include #include #include @@ -70,6 +74,11 @@ struct isl_basic_map { struct isl_blk block2; }; +#undef EL +#define EL isl_basic_set + +#include + /* A "map" is a (possibly disjoint) union of basic maps. * A "set" is a (possibly disjoint) union of basic sets. * @@ -95,6 +104,11 @@ struct isl_map { struct isl_basic_map *p[1]; }; +#undef EL +#define EL isl_set + +#include + __isl_give isl_map *isl_map_realign(__isl_take isl_map *map, __isl_take isl_reordering *r); __isl_give isl_set *isl_set_realign(__isl_take isl_set *set, diff --git a/isl_mat.c b/isl_mat.c index 5290deab..6b548492 100644 --- a/isl_mat.c +++ b/isl_mat.c @@ -8,10 +8,10 @@ */ #include +#include #include #include #include -#include "isl_map_private.h" #include isl_ctx *isl_mat_get_ctx(__isl_keep isl_mat *mat) diff --git a/isl_schedule.c b/isl_schedule.c index 032b6377..e58dd576 100644 --- a/isl_schedule.c +++ b/isl_schedule.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include diff --git a/isl_set_list.c b/isl_set_list.c new file mode 100644 index 00000000..b2798274 --- /dev/null +++ b/isl_set_list.c @@ -0,0 +1,21 @@ +#include + +#undef EL +#define EL isl_basic_set + +#include + +#undef EL +#define EL isl_set + +#include + +#undef BASE +#define BASE basic_set + +#include + +#undef BASE +#define BASE set + +#include