PIPS
|
#include <stdio.h>
#include "linear.h"
#include "genC.h"
#include "ri.h"
#include "ri-util.h"
#include "misc.h"
#include "conversion.h"
Go to the source code of this file.
Functions | |
Psysteme | loop_iteration_domaine_to_sc (list lls, Pbase *baseindex) |
package conversion More... | |
void | loop_index_domaine_to_contrainte (range r, entity ind, Psysteme sc) |
ake two constraints for the current index: I-vup<=0, -I+vlow<=0
build - new_var <= 0
build incr * new_var - vup + vlow <= 0
build ind == vlow + incr * new_var
ind | nd |
sc | c |
Definition at line 86 of file loop_iteration_domaine_to_sc.c.
References Ssysteme::base, contrainte_make(), creat_new_var(), debug(), debug_off, debug_on, Ssysteme::dimension, NORMALIZE_EXPRESSION, normalized_linear, normalized_linear_p, range_increment, range_lower, range_upper, user_error, VALUE_MONE, VALUE_ONE, value_one_p, value_uminus, vect_add(), vect_add_elem(), vect_add_variable(), vect_chg_sgn(), vect_constant_p(), vect_dup(), vect_new(), VECTEUR_NUL, and vecteur_val.
Referenced by loop_iteration_domaine_to_sc().
package conversion
loop_iteration_domaine_to_sc.c
Psysteme loop_iteration_domaine_to_sc(cons *lls , Pbase *baseindex) transform the iteration domain of the nested loops (contained lls) in a system of constraints (sc)
New loop indices are added at the head of the list baseindex. The field base of sc contains all the system variables. Variables are not in a specific order.
CA: Ajout du cas ou l'increment de boucle est different de 1 le 1/9/91
add the current index "ind" to the index basis
dd the constraints to sc
lls | ls |
baseindex | aseindex |
Definition at line 52 of file loop_iteration_domaine_to_sc.c.
References base_add_dimension, CAR, CDR, debug(), debug_off, debug_on, entity_local_name(), ifdebug, Ssysteme::inegalites, instruction_loop, loop_index, loop_index_domaine_to_contrainte(), loop_range, nb_elems_list(), Ssysteme::nb_ineq, NIL, pips_debug, sc_creer_base(), sc_new(), STATEMENT, statement_instruction, and vect_fprint().
Referenced by compute_iteration_domain(), Hierarchical_tiling(), hyperplane(), parallel_tiling(), Tiling2_buffer(), Tiling_buffer_allocation(), tiling_transformation(), and unimodular().