brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 2a2a6b1 Raw
38 lines · c
1/*2 * Copyright 2012,2014 Ecole Normale Superieure3 *4 * Use of this software is governed by the MIT license5 *6 * Written by Sven Verdoolaege,7 * Ecole Normale Superieure, 45 rue d'Ulm, 75230 Paris, France8 */9 10#include <isl/space.h>11 12#include <isl_multi_macro.h>13 14/* Create a multiple expression with a single output/set dimension15 * equal to "el".16 * For most multiple expression types, the base type has a single17 * output/set dimension and the space of the result is therefore18 * the same as the space of the input.19 * In the case of isl_multi_union_pw_aff, however, the base type20 * lives in a parameter space and we therefore need to add21 * a single set dimension.22 */23__isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),BASE)(__isl_take EL *el)24{25	isl_space *space;26	MULTI(BASE) *multi;27 28	space = FN(EL,get_space(el));29	if (isl_space_is_params(space)) {30		space = isl_space_set_from_params(space);31		space = isl_space_add_dims(space, isl_dim_set, 1);32	}33	multi = FN(MULTI(BASE),alloc)(space);34	multi = FN(FN(MULTI(BASE),set),BASE)(multi, 0, el);35 36	return multi;37}38