25 #include "pips_config.h"
228 int replace_p =
false;
229 if(nrs==-1 || nrs==0)
271 " not been initialized");
bool instruction_consistent_p(instruction p)
call make_call(entity a1, list a2)
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)
void free_instruction(instruction p)
synchronization make_synchronization_none(void)
instruction make_instruction_goto(statement _field_)
void FixCReturnStatements(statement ms)
When return statements have been encountered, each of them has been replaced by a goto to a unique re...
static entity return_current_module
get_current_module_entity() is reset too early by the parser
static int number_of_return_statements
Saved to optimize the internal representation instead of relying on the parser and/or on control_rest...
static statement last_return_value_assignment
static list last_returned_value
static entity return_value_entity
It is saved because it is hard to retrieve from within actual_c_parser() once the aprsing is over.
static statement C_return_statement
Generate a unique call statement to RETURN per module.
void Reset_C_ReturnStatement()
The return statement must be reset when it is used by the parser to add the return statement to the f...
statement C_MakeReturnStatement(list el, int ln, string c)
This function creates a goto instruction to label end_label.
entity Generate_C_ReturnLabel(entity m)
Handling of C return statements.
statement Generate_C_ReturnStatement()
statement Get_C_ReturnStatement()
This function is used to generate all goto's towards the unique return used to C replace return state...
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
statement instruction_to_statement(instruction)
Build a statement from a give instruction.
void reset_current_module_entity(void)
Reset the current module entity.
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
instruction make_instruction_block(list statements)
Build an instruction block from a list of statements.
instruction make_continue_instruction()
Creates a CONTINUE instruction, that is the FORTRAN nop, the ";" in C or the "pass" in Python for exa...
instruction make_assign_instruction(expression l, expression r)
instruction make_call_instruction(entity e, list l)
Build an instruction that call a function entity with an argument list.
#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)
#define CAR(pcons)
Get the value of the first element of a list.
#define CDR(pcons)
Get the list less its first element.
#define list_undefined
Undefined list definition :-)
void insert_statement(statement, statement, bool)
This is the normal entry point.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
#define RETURN_LABEL_NAME
#define STATEMENT_ORDERING_UNDEFINED
mapping.h inclusion
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
statement last_statement(statement)
A simplified version of find_last_statement() located in prettyprint.c and designed to be used within...
#define statement_block_p(stat)
#define C_RETURN_FUNCTION_NAME
#define call_to_instruction
entity entity_empty_label(void)
entity CreateIntrinsic(string name)
this function does not create an intrinsic function because they must all be created beforehand by th...
const char * entity_module_name(entity e)
See comments about module_name().
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
entity make_label(const char *module_name, const char *local_name)
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
extensions empty_extensions(void)
extension.c
entity function_to_return_value(entity m)
Returns the entity rv that carries the value returned by module m, when m is not a C void function or...
void AddLocalEntityToDeclarations(entity, entity, statement)
Add the variable entity e to the list of variables of the function module.
#define functional_result(x)
#define type_functional(x)
#define instruction_goto(x)
#define instruction_undefined_p(x)
#define EXPRESSION(x)
EXPRESSION.
#define instruction_undefined
#define statement_label(x)
#define entity_undefined_p(x)
#define statement_instruction(x)
#define statement_undefined_p(x)
#define instruction_goto_p(x)
#define statement_undefined
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.