PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "effects.h"
#include "misc.h"
#include "text.h"
#include "boolean.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
#include "matrice.h"
#include "matrix.h"
#include "sparse_sc.h"
#include "ri-util.h"
#include "effects-util.h"
#include "conversion.h"
#include "hyperplane.h"
Go to the source code of this file.
Functions | |
statement | hyperplane (list lls, _UNUSED_ bool(*u)(statement)) |
package hyperplane More... | |
package hyperplane
void hyperplane(cons *lls) Implementation of the hyperplane method "lls" is the list of nested loops
sc initial
sc nouveau
number of index
number of constraints
make the system "sc" of constraints of iteration space
NDEBUG
create the matrix A of coefficients of index in (Psysteme)sci
NDEBUG
NDEBUG
NDEBUG
computation of the hyperplane direction
use the hyperplane direction
computation of the scanning base G
the new matrice of constraints AG = A * G
NDEBUG
create the new system of constraintes (Psysteme scn) with AG and sci
NDEBUG
NDEBUG
NDEBUG
computation of the new iteration space in the new basis G
NDEBUG
(void) fprintf(stderr,"scn after new_loop_bound:\n"); sc_default_dump(scn); has been destroyed
change of basis for index
NDEBUG
NDEBUG
generation of hyperplane code
generation of bounds
loop body generation
Definition at line 61 of file hyperplane.c.
References A, base_dimension, base_fprint(), CAR, change_of_base_index(), code_generation(), debug(), debug_off, debug_on, default_variable_to_string(), expression_to_expression_newbase(), fprintf(), G, ifdebug, Ssysteme::inegalites, instruction_loop, interactive_hyperplane_direction(), loop_iteration_domaine_to_sc(), loop_range, make_bound_expression(), malloc(), matrice_fprint(), matrice_index_sys(), matrice_multiply(), matrice_new, Ssysteme::nb_ineq, new_loop_bound(), pips_user_error, range_upper, sc_change_baseindex(), sc_default_dump(), sc_dup(), sc_newbase, scanning_base_hyperplane(), scanning_base_to_vect(), STATEMENT, statement_instruction, Scontrainte::succ, Svecteur::succ, sys_matrice_index(), VALUE_FMT, Svecteur::var, vect_change_base(), and Scontrainte::vecteur.
Referenced by global_parallelization(), and loop_hyperplane().