25 #include "pips_config.h"
57 #include "resources.h"
148 pips_assert(
"Statement is WHILELOOP in FSM_GENERATION",
164 return returned_statement;
unstructured make_unstructured(control a1, control a2)
test make_test(expression a1, statement a2, statement a3)
statement make_statement(entity a1, intptr_t a2, intptr_t a3, string a4, instruction a5, list a6, string a7, extensions a8, synchronization a9)
instruction make_instruction(enum instruction_utype tag, void *val)
synchronization make_synchronization_none(void)
control make_control(statement a1, list a2, list a3)
const char * module_name(const char *s)
Return the module part of an entity name.
void link_3_control_nodes(control c_test, control c_then, control c_else)
Add an edge between 2 control nodes.
#define NIL
The empty list (nil in Lisp)
statement make_continue_statement(entity)
#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
statement spaghettify_statement(statement, const char *)
spaghettify.c
#define empty_comments
Empty comments (i.e.
entity entity_empty_label(void)
#define statement_ordering(x)
@ is_instruction_unstructured
@ is_instruction_whileloop
#define instruction_tag(x)
#define statement_extensions(x)
#define instruction_whileloop(x)
#define whileloop_body(x)
#define statement_instruction(x)
#define whileloop_condition(x)
#define statement_number(x)
static control make_exit_from_whileloop()
Build and return a new control containing exit statement of the unstructured whileloop (this is a con...
static control make_condition_from_whileloop(whileloop the_whileloop, statement stat)
The spaghettifier is used in context of PHRASE project while creating "Finite State Machine"-like cod...
static control make_body_from_whileloop(whileloop the_whileloop, const char *module_name)
Build and return a new control containing body statement of the unstructured whileloop.
static unstructured make_unstructured_from_whileloop(whileloop the_whileloop, statement stat, const char *module_name)
Build and return a new unstructured coding the "destructured" whileloop.
statement spaghettify_whileloop(statement stat, const char *module_name)
whileloop_spaghettify.c