PIPS
|
#include "genC.h"
#include "linear.h"
#include "matrice.h"
#include "sparse_sc.h"
#include "ri.h"
#include "database.h"
#include "resources.h"
#include "misc.h"
#include "ri-util.h"
#include "prettyprint.h"
#include "pipsdbm.h"
#include "control.h"
#include "conversion.h"
#include "hyperplane.h"
Go to the source code of this file.
Data Structures | |
struct | context_p |
cette structure contient une pile. More... | |
Typedefs | |
typedef struct context_p | context_t |
Functions | |
static Value | myceil (Value k, Value m) |
static Value | myfloor (Value k, Value m) |
static Value | eval (Pvecteur pv, Value val, Variable var) |
static Value | eval2 (Value val0, Value val1, Value val2, Value val) |
static Value | intersection (Pvecteur pv1, Pvecteur pv2, Variable var, floor) |
static bool | stmt_flt (statement s, context_p context) |
static void | stmt_rwt (statement s, context_p context) |
static bool | loop_flt (loop l, context_p context) |
statement | unimodular (s) |
statement | free_guards (statement s) |
bool | guard_elimination (string module) |
Variables | |
Psysteme | sc_newbase |
include <sys/ddi.h> More... | |
Ptsg | sg |
bool | if1 =false |
bool | if2 =false |
Definition at line 82 of file guard_elimination.c.
References TCST, and vect_coeff().
Referenced by c_whileloop(), freia_alloc_stat_p(), html_print_whileloop(), loop_flt(), and text_whileloop().
Definition at line 93 of file guard_elimination.c.
References value_direct_multiply, and value_div.
Referenced by free_guards().
sg_dump(sg);
fprint_lsom(stderr, vertice,variable_dump_name );
debut cas1
fins cas1
ebut cas2
fin cas2
debut cas3
s1
in cas3
debut cas4
in cas4
Definition at line 544 of file guard_elimination.c.
References call_arguments, CAR, CDR, CHUNK, CONS, contrainte_make(), contrainte_vecteur, copy_loop(), copy_statement(), typ_som::denominateur, egalite_equal(), entity_intrinsic(), eq_expression, eval2(), exp, EXPRESSION, expression_normalized, expression_syntax, FOREACH, gen_concatenate(), gen_full_copy_list(), gen_last(), gen_nreverse(), if1, if2, Ssysteme::inegalites, instruction_loop, instruction_loop_p, instruction_sequence, instruction_test, instruction_to_statement(), int_to_expression(), is_syntax_call, lexp, loop1, loop_body, loop_index, loop_range, make_block_statement(), make_call(), make_contrainte_expression(), make_expression(), make_instruction_loop(), make_instruction_sequence(), make_sequence(), make_syntax(), MAP, MODULO_OPERATOR_NAME, NIL, norm(), normalize_all_expressions_of(), normalized_linear, normalized_undefined, printf(), Pvecteur_to_expression(), range_equal_p(), range_lower, range_upper, s1, sc_newbase, sequence_statements, sg, sg_nbre_sommets, sg_sommets, STATEMENT, statement_instruction, Scontrainte::succ, typ_som::succ, syntax_call, TCST, test_condition, test_true, value_abs, value_direct_multiply, value_div, value_plus, vect_add_elem(), vect_chg_coeff(), vect_coeff(), vect_dup(), vect_equal(), vect_erase_var(), vect_oppos(), vect_substract(), Scontrainte::vecteur, typ_som::vecteur, and VECTEUR_NUL.
Referenced by guard_elimination().
set_ordering_to_statement(stat);
MAP(STATEMENT,s,{printf("%d \n",statement_ordering(s));},lis)
gen_recurse(stat, statement_domain, gen_true,);
module | odule |
Definition at line 1208 of file guard_elimination.c.
References CAR, CDR, CHUNK, db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, free_guards(), gen_context_multi_recurse(), gen_null(), instruction_sequence, local_name_to_top_level_entity(), loop_domain, loop_flt(), MAP, module, module_reorder(), ordering_to_statement(), pips_debug, reset_current_module_entity(), reset_current_module_statement(), s1, sequence_statements, set_current_module_entity(), set_current_module_statement(), stack_make(), STATEMENT, statement_domain, statement_instruction, statement_ordering, stmt_flt(), stmt_rwt(), unimodular(), and user_request().
Definition at line 100 of file guard_elimination.c.
References myceil(), myfloor(), TCST, and vect_coeff().
Referenced by loop_flt().
ECLARATION
ND OF DECLARATION
Definition at line 127 of file guard_elimination.c.
References call_function, CAR, CDR, CHUNK, CONS, copy_expression(), copy_loop(), copy_statement(), entity_name, entity_to_expression(), eq_expression, eval(), expression_normalized, gen_length(), if1, if2, instruction_call, instruction_call_p, instruction_loop, instruction_loop_p, instruction_sequence, instruction_sequence_p, instruction_to_statement(), int_to_expression(), intersection(), loop_body, loop_index, loop_range, loop_to_statement, make_block_statement(), make_instruction_sequence(), make_sequence(), make_test(), MAP, NIL, normalize_all_expressions_of(), normalized_linear, normalized_linear_p, pips_assert, range_lower, range_upper, s1, sequence_statements, stack_head(), STATEMENT, statement_instruction, TCST, test_to_statement, and vect_coeff().
Referenced by guard_elimination().
Definition at line 56 of file guard_elimination.c.
References value_direct_multiply, value_div, and value_mod.
Referenced by intersection().
Definition at line 69 of file guard_elimination.c.
References value_direct_multiply, value_div, and value_mod.
Referenced by intersection().
Definition at line 116 of file guard_elimination.c.
References stack_push().
Referenced by guard_elimination().
Definition at line 121 of file guard_elimination.c.
References pips_assert, and stack_pop().
Referenced by guard_elimination().
statement unimodular | ( | s | ) |
sc initial
sc nouveau
number of index
number of constraints
create the new system of constraintes (Psysteme scn) with
AG and sci
computation of the new iteration space in the new basis G
change of basis for index
generation of hyperplane code
generation of bounds
loop body generation
FI: I do not know if the last parameter should be true or false
Definition at line 465 of file guard_elimination.c.
References A, base_dimension, CAR, change_of_base_index(), code_generation(), CONS, expression_to_expression_newbase(), free(), G, Ssysteme::inegalites, instruction_loop, instruction_loop_p, loop_body, loop_iteration_domaine_to_sc(), loop_range, make_bound_expression(), malloc(), matrice_fscan(), matrice_general_inversion(), matrice_index_sys(), matrice_multiply(), matrice_new, Ssysteme::nb_ineq, new_loop_bound(), printf(), range_upper, safe_fclose(), safe_fopen(), sc_change_baseindex(), sc_dump(), sc_dup(), sc_newbase, sc_syst_debug(), sc_to_sg_chernikova(), scanning_base_to_vect(), sg, STATEMENT, statement_instruction, Scontrainte::succ, Svecteur::succ, sys_matrice_index(), user_request(), Svecteur::var, vect_change_base(), and Scontrainte::vecteur.
Referenced by guard_elimination().
Definition at line 49 of file guard_elimination.c.
Referenced by free_guards(), and loop_flt().
Definition at line 49 of file guard_elimination.c.
Referenced by free_guards(), and loop_flt().
Psysteme sc_newbase |
include <sys/ddi.h>
Definition at line 47 of file guard_elimination.c.
Referenced by code_generation(), free_guards(), hyperplane(), and unimodular().
Ptsg sg |
Definition at line 48 of file guard_elimination.c.
Referenced by ajout_dte(), constrs_of_sg(), dte_in_sg_p(), free_guards(), is_good_direction_p(), main(), mk_rn(), ray_in_sg_p(), rays_of_sg(), sc_of_sg(), sc_to_sg_chernikova(), sg_add_ray(), sg_dump(), sg_fprint(), sg_fprint_as_ddv(), sg_fprint_as_dense(), sg_new(), sg_of_constrs(), sg_of_rays(), sg_of_sc(), sg_print(), sg_rm(), sg_rm_droites(), sg_rm_rayons(), sg_rm_sommets(), sg_to_sc_chernikova(), sg_to_sc_chernikova_fixprec(), sg_union(), sommet_in_sg_p(), and unimodular().