Polly
20.0.0git
llvm-project
polly
lib
External
isl
isl_multi_coalesce.c
Go to the documentation of this file.
1
/*
2
* Copyright 2013 Ecole Normale Superieure
3
*
4
* Use of this software is governed by the MIT license
5
*
6
* Written by Sven Verdoolaege,
7
* Ecole Normale Superieure, 45 rue d'Ulm, 75230 Paris, France
8
*/
9
10
#include <
isl_multi_macro.h
>
11
12
/* Coalesce the elements of "multi".
13
*
14
* Note that such coalescing does not change the meaning of "multi"
15
* so there is no need to cow. We do need to be careful not to
16
* destroy any other copies of "multi" in case of failure.
17
*/
18
__isl_give
MULTI
(
BASE
) *
FN
(
MULTI
(
BASE
),
coalesce
)(
__isl_take
MULTI
(
BASE
) *multi)
19
{
20
int
i;
21
22
if
(!multi)
23
return
NULL;
24
25
for
(i = 0; i < multi->n; ++i) {
26
EL
*el =
FN
(
EL
,copy)(multi->u.p[i]);
27
el =
FN
(
EL
,
coalesce
)(el);
28
if
(!el)
29
return
FN
(
MULTI
(
BASE
),free)(multi);
30
FN
(
EL
,free)(multi->u.p[i]);
31
multi->u.p[i] = el;
32
}
33
34
return
multi;
35
}
FN
#define FN(TYPE, NAME)
Definition:
check_parse_fail_test_templ.c:15
__isl_take
#define __isl_take
Definition:
ctx.h:22
__isl_give
#define __isl_give
Definition:
ctx.h:19
BASE
#define BASE
Definition:
flow_cmp.c:49
EL
#define EL
Definition:
isl_aff_private.h:238
coalesce
static int coalesce(isl_ctx *ctx, int n, struct isl_coalesce_info *info)
Definition:
isl_coalesce.c:4099
isl_multi_macro.h
MULTI
#define MULTI(BASE)
Definition:
isl_multi_macro.h:6
Generated on Wed Nov 13 2024 03:17:25 for Polly by
1.9.6