25 #include "pips_config.h"
34 #include "resources.h"
clone_context make_clone_context(entity a1, entity a2, list a3, statement a4)
void free_clone_context(clone_context p)
evaluation make_evaluation_before(void)
instruction make_instruction_forloop(forloop _field_)
whileloop make_whileloop(expression a1, statement a2, entity a3, evaluation a4)
expression copy_expression(expression p)
EXPRESSION.
statement copy_statement(statement p)
STATEMENT.
instruction make_instruction_sequence(sequence _field_)
void free_evaluation(evaluation p)
sequence make_sequence(list a)
instruction make_instruction_whileloop(whileloop _field_)
forloop make_forloop(expression a1, expression a2, expression a3, statement a4)
statement clone_statement(statement s, clone_context cc)
clone_statement.c
void do_loop_to_for_loop(statement sl)
converts a doloop to a for loop, in place
bool dowhile_to_while(const char *module_name)
dowhile_to_while.c
void do_loop_to_while_loop(statement sl)
converts a doloop to a while loop, in place
static void dowhile_to_while_walker(statement stmt, bool *changed)
const char * module_name(const char *s)
Return the module part of an entity name.
#define gen_context_recurse(start, ctxt, domain_number, flt, rwt)
statement make_block_statement(list)
Make a block statement from a list of statement.
statement instruction_to_statement(instruction)
Build a statement from a give instruction.
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.
bool gen_true2(__attribute__((unused)) gen_chunk *u1, __attribute__((unused)) void *u2)
instruction make_instruction_block(list statements)
Build an instruction block from a list of statements.
#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)
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.
loop statement_loop(statement)
Get the loop of a statement.
bool statement_loop_p(statement)
statement make_assign_statement(expression, expression)
statement update_statement_instruction(statement, instruction)
Replace the instruction in statement s by instruction i.
void insert_statement(statement, statement, bool)
This is the normal entry point.
#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 PLUS_OPERATOR_NAME
#define PLUS_UPDATE_OPERATOR_NAME
#define make_statement_list(stats...)
easy list constructor
#define LESS_OR_EQUAL_OPERATOR_NAME
#define make_empty_statement
An alias for make_empty_block_statement.
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
entity entity_empty_label(void)
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
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.
expression make_assign_expression(expression lhs, expression rhs)
Make an assign expression, since in C the assignment is a side effect operator.
#define whileloop_evaluation(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define range_increment(x)
#define instruction_undefined
#define expression_undefined
#define instruction_whileloop(x)
#define whileloop_body(x)
#define statement_instruction(x)
#define instruction_whileloop_p(x)
#define evaluation_after_p(x)
The structure used to build lists in NewGen.