brintos

brintos / llvm-project-archived public Read only

0
0
Text · 798 B · 1146090 Raw
37 lines · c
1/*2 * Copyright 2010      INRIA Saclay3 *4 * Use of this software is governed by the MIT license5 *6 * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France,7 * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod,8 * 91893 Orsay, France9 */10 11#include <isl_pw_macro.h>12 13/* Apply "fn" to each of the base expressions of "pw".14 * The function is assumed to have no effect on the default value15 * (i.e., zero for those objects with a default value).16 */17static __isl_give PW *FN(PW,un_op)(__isl_take PW *pw,18	__isl_give EL *(*fn)(__isl_take EL *el))19{20	isl_size n;21	int i;22 23	n = FN(PW,n_piece)(pw);24	if (n < 0)25		return FN(PW,free)(pw);26 27	for (i = 0; i < n; ++i) {28		EL *el;29 30		el = FN(PW,take_base_at)(pw, i);31		el = fn(el);32		pw = FN(PW,restore_base_at)(pw, i, el);33	}34 35	return pw;36}37