PIPS
|
#include "local.h"
Go to the source code of this file.
Macros | |
#define | GRAPH_IS_DG |
Name : adg_utils.c Package : array_dfg Author : Arnauld LESERVOT Date : 93/06/27 Modified : Documents: "Le Calcul de l'Array Data Flow Graph dans PIPS
Partie II : Implantation dans PIPS" A. More... | |
Functions | |
predicate | adg_get_predicate_of_loops (list loops) |
====================================================================== More... | |
list | adg_predicate_list_dup (list ps_l) |
====================================================================== More... | |
list | adg_make_disjunctions (list ps_l1, list ps_l2) |
====================================================================== More... | |
list | adg_get_conjonctions (expression ndf_exp) |
====================================================================== More... | |
list | adg_get_disjunctions (list exp_l) |
====================================================================== More... | |
predicate | my_adg_expressions_to_predicate (list exp_l) |
======================================================================== More... | |
Variables | |
int | Gcount_re |
External variables. More... | |
#define GRAPH_IS_DG |
Name : adg_utils.c Package : array_dfg Author : Arnauld LESERVOT Date : 93/06/27 Modified : Documents: "Le Calcul de l'Array Data Flow Graph dans PIPS Partie II : Implantation dans PIPS" A.
LESERVOT "Dataflow Analysis of Array and Scalar References" P. FEAUTRIER Comments :
Definition at line 38 of file adg_predicate.c.
list adg_get_conjonctions | ( | expression | ndf_exp | ) |
======================================================================
list adg_get_conjonctions( (expression) ndf_exp ) AL 13/07/93 Returns a list of Predicates made of conjonctions, from an ndf expression. Was used to simulate union. dj_ functions should be used now.
We are in a conjonction form case
Definition at line 157 of file adg_predicate.c.
References ADD_ELEMENT_TO_LIST, call_arguments, call_function, CAR, CDR, contrainte_make(), debug(), ENTITY_AND_P, ENTITY_GREATER_OR_EQUAL_P, ENTITY_OR_P, EXPRESSION, expression_syntax, expression_to_int(), expression_to_string(), fprintf(), gen_nconc(), make_predicate(), NIL, NORMALIZE_EXPRESSION, normalized_linear, normalized_linear_p, pips_debug, pips_internal_error, PREDICATE, predicate_system, RETURN, sc_add_inegalite(), sc_append(), sc_creer_base(), sc_new(), syntax_call, syntax_call_p, and vect_chg_sgn().
Referenced by adg_get_disjunctions().
======================================================================
list adg_get_disjunctions( (list) exp_l ) AL 13/07/93 exp_l is a list of normal disjunctive form expressions. It returns a list of Predicates. These Predicates, put together in a disjunctive form have the same bool value as a system of incoming expressions.
Definition at line 226 of file adg_predicate.c.
References adg_fprint_predicate_list(), adg_get_conjonctions(), adg_make_disjunctions(), CAR, debug(), ENDP, exp, EXPRESSION, get_debug_level(), NIL, and POP.
Referenced by adg_dup_disjunctive_nodes(), and adg_get_exec_domain().
======================================================================
PREDICATE FUNCTIONS
====================================================================== ====================================================================== predicate adg_get_predicate_of_loops( list loops ) AL 15/07/93 Input : a list of loops. Output : a predicate which represents a conjonction of all conditions on each loop's indexes. COMMON use.
Definition at line 55 of file adg_predicate.c.
References adg_fprint_psysteme(), Ssysteme::base, CAR, contrainte_make(), debug(), ENDP, EXPRESSION_PVECTEUR, get_debug_level(), LOOP, loop_index, loop_range, loops, make_predicate(), Ssysteme::nb_eq, Ssysteme::nb_ineq, POP, predicate_system, predicate_undefined, range_lower, range_upper, sc_add_inegalite(), sc_creer_base(), sc_new(), VALUE_ONE, vect_new(), and vect_substract().
Referenced by adg_dataflowgraph(), adg_dataflowgraph_with_extremities(), and adg_get_exec_domain().
======================================================================
list adg_make_disjunctions( (list) ps_l1, (list) ps_l2 ) AL 13/07/93 Takes in two list of Predicate and returns a list of Predicates. Was used to simulate union. dj_ functions should be used now.
Definition at line 122 of file adg_predicate.c.
References ADD_ELEMENT_TO_LIST, adg_predicate_list_dup(), CAR, debug(), ENDP, make_predicate(), NIL, POP, PREDICATE, predicate_system, RETURN, sc_append(), and sc_dup().
Referenced by adg_get_disjunctions(), and adg_get_exec_domain().
======================================================================
list adg_predicate_list_dup( (list) ps_l ) AL 13/07/93 Duplicates a list of Predicates. Was used to simulate union. dj_ functions should be used now.
Definition at line 99 of file adg_predicate.c.
References ADD_ELEMENT_TO_LIST, CAR, debug(), ENDP, make_predicate(), NIL, POP, PREDICATE, predicate_system, and sc_dup().
Referenced by adg_make_disjunctions().
========================================================================
this is Alexis's function adg_expressions_to_predicate (see mapping) predicate adg_expressions_to_predicate(list exp_l): returns the predicate that has the inequalities given as expressions in "exp_l". For example: if A is an expresion of "exp_l" then we'll have the inequality A <= 0 in the predicate.
If an expression is not linear, we warn the user.
Note: if "exp_l" is empty then we return an undefined predicate.
Definition at line 258 of file adg_predicate.c.
References adg_fprint_psysteme(), CAR, contrainte_make(), debug(), ENDP, exp, EXPRESSION, expression_to_string(), fprintf(), get_debug_level(), make_predicate(), NIL, NORMALIZE_EXPRESSION, normalized_linear, normalized_linear_p, POP, predicate_system, predicate_undefined, RETURN, sc_add_inegalite(), sc_creer_base(), sc_new(), and unnormalize_expression().
|
extern |
External variables.
Definition at line 45 of file array_dfg.c.