25 #include "pips_config.h"
89 static int check_depth_hack = 0;
91 pips_assert(
"not too deep", check_depth_hack<10000);
168 bool changed =
false;
198 debug(3,
"unstructured_reorder",
"exiting\n");
216 pips_assert(
"ordering to statement is not initialized",
225 bool changed =
false;
247 if(ordering_mapping_used)
254 if (ordering_mapping_used) {
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
#define UNSTRUCTURED_CONTROL_MAP(c, u, l, code)
Walk through all the controls of un unstructured.
#define NIL
The empty list (nil in Lisp)
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.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
void debug(const int the_expected_debug_level, const char *calling_function_name, const char *a_message_format,...)
ARARGS0.
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.
bool ordering_to_statement_initialized_p()
Test if the ordering to statement is initialized.
static int statement_reorder(statement st, int un, int sn, bool *changed)
Compute the statement ordering of a statement and all its components.
void control_node_reorder(__attribute__((unused)) control c, __attribute__((unused)) set visited_control)
static int get_next_unstructured_number()
Compute the next unstructured order.
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
void reset_unstructured_number()
Reset the unstructured number for a new module reordering.
bool module_body_reorder(statement body)
Reorder a module.
static int u_number
The current unstructured number, that is the number of control node encountered during depth first vi...
static int get_unstructured_number()
Compute the next unstructured order.
bool unstructured_reorder(unstructured u)
Reorder an unstructured.
#define MAKE_ORDERING(u, s)
On devrait utiliser Newgen pour cela, mais comme on ne doit pas les utiliser directement (mais via st...
#define instruction_loop(x)
#define statement_ordering(x)
#define instruction_undefined_p(x)
@ is_instruction_unstructured
@ is_instruction_whileloop
@ is_instruction_expression
@ is_instruction_sequence
#define instruction_tag(x)
#define sequence_statements(x)
#define instruction_sequence(x)
#define instruction_forloop(x)
#define instruction_whileloop(x)
#define whileloop_body(x)
#define statement_instruction(x)
#define control_statement(x)
#define instruction_test(x)
#define statement_number(x)
#define instruction_unstructured(x)
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.