27 #ifdef BUILDER_PATH_TRANSFORMER
30 #include "pips_config.h"
61 #define MODE_SEQUENCE 0
62 #define MODE_PROLOGUE 1
63 #define MODE_PERMANENT 2
64 #define MODE_EPILOGUE 3
174 transformer t_enter = do_loop_to_enter_condition_transformer(l, pre);
204 t_enter = do_loop_to_enter_condition_transformer(l, precondition_in_off(s));
218 t = approximative(
sb, s, pbegin, pend);
224 path pbegin,
path pend, PATH_MODE m,
231 transformer t_exit = do_loop_to_exit_condition_transformer(l, pre);
237 if(m == MODE_SEQUENCE || m == MODE_PROLOGUE)
250 l, precondition_in_off(s));
254 t = iterate(
sb, s, pbegin, pend, low, high, MODE_PERMANENT);
272 if(m == MODE_SEQUENCE || m == MODE_EPILOGUE)
279 if(m == MODE_EPILOGUE)
280 te = iterate(
sb, s, pbegin, pend, low, high, MODE_PERMANENT);
286 transformer t_enter = do_loop_to_enter_condition_transformer(l, pre);
324 ts = ((m == MODE_PERMANENT)
355 if(m == MODE_PERMANENT)
388 transformer t_exit = do_loop_to_exit_condition_transformer(l, pre);
389 transformer t_init = do_loop_to_init_transformer(l, precondition_in_off(s));
393 else if(m == MODE_PERMANENT){
401 t = path_transformer_on_loop(
sb, s, pbegin, pend, m, ibegin, iend);
411 transformer t_enter = do_loop_to_enter_condition_transformer(l, pre);
417 return t_one_iteration;
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
void free_transformer(transformer p)
expression copy_expression(expression p)
EXPRESSION.
void free_expression(expression p)
transformer copy_transformer(transformer p)
TRANSFORMER.
gen_array_t gen_array_make(size_t size)
declarations...
void gen_array_addto(gen_array_t a, size_t i, void *what)
void * gen_array_item(const gen_array_t a, size_t i)
transformer transformer_identity()
Allocate an identity transformer.
transformer transformer_empty()
Allocate an empty transformer.
struct _newgen_struct_statement_ * statement
transformer transformer_derivative_fix_point(transformer)
Computation of a transitive closure using constraints on the discrete derivative.
void set_methods_for_convex_effects(void)
methods.c
void init_convex_rw_prettyprint(const char *)
void reset_proper_rw_effects(void)
void set_proper_rw_effects(statement_effects)
void set_cumulated_rw_effects(statement_effects)
void generic_effects_reset_all_methods(void)
void reset_cumulated_rw_effects(void)
list expression_to_proper_constant_path_effects(expression)
const char * module_name(const char *s)
Return the module part of an entity name.
FILE * safe_fopen(const char *filename, const char *what)
char * get_string_property(const char *)
int safe_fclose(FILE *stream, const char *filename)
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
#define gen_recurse(start, domain_number, flt, rwt)
void gen_full_free_list(list l)
void reset_current_module_entity(void)
Reset the current module entity.
void reset_current_module_statement(void)
Reset the current module statement.
const char * get_current_module_name(void)
Get the name of the current module.
statement set_current_module_statement(statement)
Set the current module statement.
statement get_current_module_statement(void)
Get the current module statement.
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
#define NIL
The empty list (nil in Lisp)
#define CAR(pcons)
Get the value of the first element of a list.
#define MAPL(_map_list_cp, _code, _l)
Apply some code on the addresses of all the elements of a list.
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
#define DB_PUT_FILE_RESOURCE
Put a file resource into the current workspace database.
loop statement_loop(statement)
Get the loop of a statement.
bool statement_loop_p(statement)
statement find_statement_from_label_name(statement, const char *, const char *)
bool belong_to_statement(statement, statement, bool)
return true if s is enclosed in stmt NL: What is the difference with statement_in_statement_p?
bool expression_constant_p(expression)
HPFC module by Fabien COELHO.
string db_build_file_resource_name(const char *rname, const char *oname, const char *suffix)
returns an allocated file name for a file resource.
#define pips_user_warning
#define pips_internal_error
string concatenate(const char *,...)
Return the concatenation of the given strings.
hash_table set_ordering_to_statement(statement s)
To be used instead of initialize_ordering_to_statement() to make sure that the hash table ots is in s...
void reset_ordering_to_statement(void)
Reset the mapping from ordering to statement.
string db_get_current_workspace_directory(void)
text text_module(entity, statement)
#define GREATER_THAN_OPERATOR_NAME
#define binary_intrinsic_expression(name, e1, e2)
#define is_instruction_block
soft block->sequence transition
#define GREATER_OR_EQUAL_OPERATOR_NAME
#define instruction_block(i)
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
static int init
Maximal value set for Fortran 77.
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
bool label_defined_in_current_module_p(entity l)
int expression_to_int(expression exp)
================================================================
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
expression MakeBinaryCall(entity f, expression eg, expression ed)
Creates a call expression to a function with 2 arguments.
bool expression_equal_p(expression e1, expression e2)
Syntactic equality e1==e2.
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
entity find_label_entity(const char *, const char *)
util.c
#define transformer_undefined
#define statement_ordering(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define instruction_tag(x)
#define test_condition(x)
#define statement_instruction(x)
#define instruction_test(x)
#define STATEMENT(x)
STATEMENT.
transformer condition_to_transformer(expression cond, transformer pre, bool veracity)
To capture side effects and to add C twist for numerical conditions.
transformer transformer_add_loop_index_incrementation(transformer tf, loop l, transformer pre)
void module_to_value_mappings(entity m)
void module_to_value_mappings(entity m): build hash tables between variables and values (old,...
void set_prettyprint_transformer(void)
text text_transformer(transformer tran)
text text_transformer(transformer tran) input : a transformer representing a transformer or a precond...
bool path_transformer(const string)
transformer path_transformer_on(statement, path, path, int)
transformer load_statement_precondition(statement)
void set_transformer_map(statement_mapping)
transformer load_statement_transformer(statement)
void reset_precondition_map(void)
transformer compute_path_transformer(statement, path, path)
void set_precondition_map(statement_mapping)
void path_initialize(statement, statement, statement, path *, path *)
path_transformer.c
void reset_transformer_map(void)
The structure used to build lists in NewGen.
#define MERGE_TEXTS(r, t)
#define MAKE_ONE_WORD_SENTENCE(m, s)
#define ADD_SENTENCE_TO_TEXT(t, p)
void print_text(FILE *fd, text t)