Polly 23.0.0git
isl_multi_gist.c
Go to the documentation of this file.
1/*
2 * Copyright 2011 Sven Verdoolaege
3 * Copyright 2012-2013 Ecole Normale Superieure
4 *
5 * Use of this software is governed by the MIT license
6 *
7 * Written by Sven Verdoolaege,
8 * Ecole Normale Superieure, 45 rue d’Ulm, 75230 Paris, France
9 */
10
11#include <isl_multi_macro.h>
12
13/* Compute the gist of the parameter domain "dom1" with respect to "dom2".
14 *
15 * Since "dom2" may not be a parameter domain, explicitly convert it
16 * to a parameter domain first.
17 */
18static __isl_give DOM *FN(MULTI(BASE),domain_gist_params)(DOM *dom1,
19 __isl_take DOM *dom2)
20{
22
23 params = FN(DOM,params)(dom2);
24 dom1 = FN(DOM,gist_params)(dom1, params);
25
26 return dom1;
27}
28
29/* Compute the gist of "multi" with respect to the domain constraints
30 * of "context".
31 */
34{
35 if (FN(MULTI(BASE),check_compatible_domain)(multi, context) < 0)
36 context = FN(DOM,free)(context);
37 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, context, &FN(EL,gist),
38 &FN(DOM,gist),
39 &FN(MULTI(BASE),domain_gist_params));
40}
41
42/* Compute the gist of "multi" with respect to the parameter constraints
43 * of "context".
44 */
45__isl_give MULTI(BASE) *FN(MULTI(BASE),gist_params)(
47{
48 return FN(MULTI(BASE),apply_set)(multi, context, &FN(EL,gist_params),
49 &FN(DOM,gist_params), &FN(DOM,gist_params));
50}
#define FN(TYPE, NAME)
#define __isl_take
Definition ctx.h:22
#define __isl_give
Definition ctx.h:19
#define BASE
Definition flow_cmp.c:49
#define DOMBASE
Definition isl_aff.c:4121
#define EL
#define isl_set
#define MULTI(BASE)
#define DOM
const char * context
Definition isl_test.c:1792
const char * gist
Definition isl_test.c:1793
static Kind params
static TupleKindPtr apply(const TupleKindPtr tuple, const Substitution &subs)