25 #include "pips_config.h"
42 #include "resources.h"
160 "before the controlizer is called",
163 module_stat =
hcfg(module_stat);
166 "after the controlizer call",
282 "before the controlizer is called",
297 "after the controlizer call",
statement copy_statement(statement p)
STATEMENT.
bool statement_consistent_p(statement p)
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)
struct _newgen_struct_statement_ * statement
#define USE_OLD_CONTROLIZER_ENV_VAR_NAME
The name of the one to force the use of the old controlizer:
#define USE_NEW_CONTROLIZER_ENV_VAR_NAME
– control.h
bool controlizer(const char *module_name)
The old controlizer user interface.
static statement update_unstructured_declarations(statement module_stat)
FI: a short-term solution to fix declarations lost due to unstructured building by controlizer.
bool new_controlizer(const char *module_name)
Transform a code with some goto and labels (typically generated by a parser) into a code that is a hi...
void transform_a_for_loop_statement_into_a_while_loop(statement)
Same as above, but with no calls to ancestors.
void try_to_transform_a_for_loop_into_a_do_loop(forloop)
Try to to transform the C-like for-loops into Fortran-like do-loops.
void unspaghettify_statement(statement)
The real entry point of unspaghettify:
bool compilation_unit_p(const char *module_name)
The names of PIPS entities carry information about their nature.
const char * module_name(const char *s)
Return the module part of an entity name.
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)
statement make_block_statement(list)
Make a block statement from a list of statement.
unstructured control_graph(statement)
CONTROL_GRAPH returns the control graph of the statement ST.
statement hcfg(statement)
Compute the hierarchical control flow graph (HCFG) of a statement.
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.
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
#define ENDP(l)
Test if a list is empty.
#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)
list gen_nconc(list cp1, list cp2)
physically concatenates CP1 and CP2 but do not duplicates the elements
void gen_free_list(list l)
free the spine of the list
bool gen_in_list_p(const void *vo, const list lx)
tell whether vo belongs to lx
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
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.
bool statement_unstructured_p(statement)
list statement_to_referenced_entities(statement)
Get a list of all variables referenced recursively within a statement:
list statement_to_called_user_entities(statement)
Get a list of all user function called recursively within a statement:
list statement_to_declarations(void *)
Get a list of all variables declared recursively within a statement.
void set_prettyprint_language_from_property(enum language_utype native)
set the prettyprint language according to the property PRETTYPRINT_LANGUAGE @description If the prope...
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
#define statement_block_p(stat)
#define STATEMENT_NUMBER_UNDEFINED
default values
#define MAKE_ORDERING(u, s)
On devrait utiliser Newgen pour cela, mais comme on ne doit pas les utiliser directement (mais via st...
#define empty_comments
Empty comments (i.e.
bool c_module_p(entity m)
Test if a module "m" is written in C.
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
entity entity_empty_label(void)
void print_entities(list l)
bool member_entity_p(entity e)
extensions empty_extensions(void)
extension.c
bool formal_parameter_p(entity)
#define forloop_domain
newgen_extensions_domain_defined
#define statement_domain
newgen_sizeofexpression_domain_defined
#define code_declarations(x)
#define entity_undefined_p(x)
@ is_instruction_unstructured
#define statement_declarations(x)
#define STATEMENT(x)
STATEMENT.
#define entity_initial(x)
The structure used to build lists in NewGen.
entity module_entity_to_compilation_unit_entity(entity m)
Retrieve the compilation unit containing a module definition.