llvm/polly/lib/External/isl/isl_multi_explicit_domain.c

/*
 * Copyright 2017      Sven Verdoolaege
 *
 * Use of this software is governed by the MIT license
 *
 * Written by Sven Verdoolaege.
 */

/* These versions of the explicit domain functions are used
 * when the multi expression may have an explicit domain.
 */

#include <isl_multi_macro.h>

__isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi);

/* Does "multi" have an explicit domain?
 *
 * An explicit domain is only available if "multi" is zero-dimensional.
 */
static int FN(MULTI(BASE),has_explicit_domain)(__isl_keep MULTI(BASE) *multi)
{}

/* Check that "multi" has an explicit domain.
 */
static isl_stat FN(MULTI(BASE),check_has_explicit_domain)(
	__isl_keep MULTI(BASE) *multi)
{}

/* Return the explicit domain of "multi", assuming it has one.
 */
static __isl_keep DOM *FN(MULTI(BASE),peek_explicit_domain)(
	__isl_keep MULTI(BASE) *multi)
{}

/* Return a copy of the explicit domain of "multi", assuming it has one.
 */
static __isl_give DOM *FN(MULTI(BASE),get_explicit_domain)(
	__isl_keep MULTI(BASE) *multi)
{}

/* Replace the explicit domain of "multi" by "dom", assuming it has one.
 */
static __isl_give MULTI(BASE) *FN(MULTI(BASE),set_explicit_domain)(
	__isl_take MULTI(BASE) *multi, __isl_take DOM *dom)
{}

/* Intersect the domain of "dst" with the explicit domain of "src".
 *
 * In the case of isl_multi_union_pw_aff objects, the explicit domain
 * of "src" is allowed to have only constraints on the parameters, even
 * if the domain of "dst" contains actual domain elements.  In this case,
 * the domain of "dst" is intersected with those parameter constraints.
 */
static __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_explicit_domain)(
	__isl_take MULTI(BASE) *dst, __isl_keep MULTI(BASE) *src)
{}

/* Set the explicit domain of "dst" to that of "src".
 */
static __isl_give MULTI(BASE) *FN(MULTI(BASE),copy_explicit_domain)(
	__isl_take MULTI(BASE) *dst, __isl_keep MULTI(BASE) *src)
{}

/* Align the parameters of the explicit domain of "multi" to those of "space".
 */
static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_explicit_domain_params)(
	__isl_take MULTI(BASE) *multi, __isl_take isl_space *space)
{}

/* Replace the space of the explicit domain of "multi" by "space",
 * without modifying its dimension.
 */
static __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_explicit_domain_space)(
	__isl_take MULTI(BASE) *multi, __isl_take isl_space *space)
{}

/* Free the explicit domain of "multi".
 */
static void FN(MULTI(BASE),free_explicit_domain)(__isl_keep MULTI(BASE) *multi)
{}

/* Do "multi1" and "multi2" have the same explicit domain?
 */
static isl_bool FN(MULTI(BASE),equal_explicit_domain)(
	__isl_keep MULTI(BASE) *multi1, __isl_keep MULTI(BASE) *multi2)
{}

static isl_stat FN(MULTI(BASE),check_explicit_domain)(
	__isl_keep MULTI(BASE) *multi) __attribute__ ((unused));

/* Debugging function to check that the explicit domain of "multi"
 * has the correct space.
 */
isl_stat FN(MULTI(BASE),check_explicit_domain)(__isl_keep MULTI(BASE) *multi)
{}