26 #include "pips_config.h"
78 const char *lp_label=NULL;
81 bool return_status =
false;
95 "(give its label): ");
98 pips_user_error(
"please set %s property to a valid label\n",
"LOOP_LABEL");
108 debug_on(
"INTERACTIVE_LOOP_TRANSFORMATION_DEBUG_LEVEL");
120 return_status =
true;
125 return return_status;
callees make_callees(list a)
string list_to_string(list l)
Return the malloc()ed version of the concatenation of all the strings in the list.
struct _newgen_struct_statement_ * statement
void look_for_nested_loop_statements(statement, statement(*)(list, bool(*)(statement)), bool(*)(statement))
look_for_nested_loops.c
bool empty_string_p(const char *s)
const char * module_name(const char *s)
Return the module part of an entity name.
FILE * safe_fopen(const char *filename, const char *what)
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_context_recurse(start, ctxt, domain_number, flt, rwt)
void reset_current_module_entity(void)
Reset the current module entity.
void reset_current_module_statement(void)
Reset the current module statement.
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_null2(__attribute__((unused)) void *u1, __attribute__((unused)) void *u2)
idem with 2 args, to please overpeaky compiler checks
bool gen_true2(__attribute__((unused)) gen_chunk *u1, __attribute__((unused)) void *u2)
list gen_nreverse(list cp)
reverse a list in place
#define NIL
The empty list (nil in Lisp)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
void gen_free_list(list l)
free the spine of the list
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on 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_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
#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)
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_assert(what, predicate)
common macros, two flavors depending on NDEBUG
string concatenate(const char *,...)
Return the concatenation of the given strings.
#define string_undefined_p(s)
string db_get_current_workspace_directory(void)
bool safe_make(const char *res_n, const char *module_n)
string extensions_to_string(extensions es, bool nl)
return a new allocated string with the string representation of the extensions.
const char * get_string_property_or_ask(const char *, const char[])
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
const char * entity_user_name(entity e)
Since entity_local_name may contain PIPS special characters such as prefixes (label,...
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
bool entity_empty_label_p(entity e)
bool entity_module_p(entity e)
entity make_new_label(entity module)
This function returns a new label.
const char * label_local_name(entity e)
END_EOLE.
entity find_label_entity(const char *, const char *)
util.c
struct _newgen_struct_callees_ * callees
#define instruction_loop_p(x)
#define callees_callees(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define instruction_forloop_p(x)
#define statement_label(x)
#define entity_undefined_p(x)
#define statement_extensions(x)
#define statement_instruction(x)
#define statement_undefined_p(x)
#define statement_undefined
The structure used to build lists in NewGen.
#define MAKE_ONE_WORD_SENTENCE(m, s)
#define ADD_SENTENCE_TO_TEXT(t, p)
void print_text(FILE *fd, text t)