Blame isl-0.14/isl_reordering.h

Packit fb9d21
#ifndef ISL_REORDERING_H
Packit fb9d21
#define ISL_REORDERING_H
Packit fb9d21
Packit fb9d21
#include <isl/space.h>
Packit fb9d21
Packit fb9d21
/* pos maps original dimensions to new dimensions.
Packit fb9d21
 * The final dimension is given by dim.
Packit fb9d21
 * The number of dimensions (i.e., the range of values) in the result
Packit fb9d21
 * may be larger than the number of dimensions in the input.
Packit fb9d21
 * In particular, the possible values of the entries in pos ranges from 0 to
Packit fb9d21
 * the total dimension of dim - 1, unless isl_reordering_extend
Packit fb9d21
 * has been called.
Packit fb9d21
 */
Packit fb9d21
struct isl_reordering {
Packit fb9d21
	int ref;
Packit fb9d21
	isl_space *dim;
Packit fb9d21
	unsigned len;
Packit fb9d21
	int pos[1];
Packit fb9d21
};
Packit fb9d21
typedef struct isl_reordering isl_reordering;
Packit fb9d21
Packit fb9d21
__isl_give isl_reordering *isl_parameter_alignment_reordering(
Packit fb9d21
	__isl_keep isl_space *alignee, __isl_keep isl_space *aligner);
Packit fb9d21
__isl_give isl_reordering *isl_reordering_copy(__isl_keep isl_reordering *exp);
Packit fb9d21
void *isl_reordering_free(__isl_take isl_reordering *exp);
Packit fb9d21
__isl_give isl_reordering *isl_reordering_extend_space(
Packit fb9d21
	__isl_take isl_reordering *exp, __isl_take isl_space *dim);
Packit fb9d21
__isl_give isl_reordering *isl_reordering_extend(__isl_take isl_reordering *exp,
Packit fb9d21
	unsigned extra);
Packit fb9d21
Packit fb9d21
#endif