25 #include "pips_config.h"
87 #define call_assign_p(c) \
88 (strcmp(entity_local_name(call_function(c)), ASSIGN_OPERATOR_NAME)==0)
338 list *pblocks, *ploops;
static bool FindRefToDistArrayInStatement_call_filter(call c)
static void set_current_loops_rewrite(loop l)
static int n_loops
list of lists, may be NIL if none
static bool loop_filter(loop l)
static list blocks
lisp of loops
static list syntax_list
??? False! The definition looked for must be an assignment call...
statement parallel_loop_nest_to_body(statement loop_nest, list *pblocks, list *ploops)
bool indirections_inside_statement_p(_UNUSED_ statement stat)
indirections_inside_statement_p
static list found_written
FindRefToDistArrayInStatement.
list lIndicesOfRef(list lsyn)
computes the list of indices of the list of ref that are variables...
static void loop_rewrite(loop l)
bool entity_loop_index_p(entity e)
static void sequence_rewrite(sequence s)
list updated_control_list(list lc, control_mapping map)
range loop_index_to_range(entity index)
static list current_loop_list
management of a list of current loops.
static bool FindRefToDistArrayInStatement_expression_filter(expression e)
static list found_definitions
bool is_in_syntax_list(entity e, list l)
void reset_current_loops()
static void FindDefinitionsOf_rewrite(statement s)
void set_current_loops(statement obj)
void FindRefToDistArrayInStatement(statement obj, list *lwp, list *lrp)
list FindDefinitionsOf(statement stat, list lsyn)
bool atomic_accesses_only_p(_UNUSED_ statement stat)
atomic_accesses_only_p
void update_control_lists(control c, control_mapping map)
Compiler Utilities.
list IndicesOfRef(syntax syn)
static statement inner_body
list AddOnceToIndicesList(list l, list lsyn)
#define gen_recurse(start, domain_number, flt, rwt)
statement instruction_to_statement(instruction)
Build a statement from a give instruction.
void gen_multi_recurse(void *o,...)
Multi recursion visitor function.
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
instruction make_continue_instruction()
Creates a CONTINUE instruction, that is the FORTRAN nop, the ";" in C or the "pass" in Python for exa...
bool instruction_assign_p(instruction i)
Test if an instruction is an assignment.
#define ENDP(l)
Test if a list is empty.
list gen_nreverse(list cp)
reverse a list in place
#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
#define CAR(pcons)
Get the value of the first element of a list.
void gen_free_list(list l)
free the spine of the list
#define CDR(pcons)
Get the list less its first element.
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
list FindRefToDistArray(void *obj)
#define hpfc_warning
WARNING.
bool array_distributed_p(entity)
struct _newgen_struct_control_ * control
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
#define GET_CONTROL_MAPPING(map, cont)
reference expression_reference(expression e)
Short cut, meaningful only if expression_reference_p(e) holds.
#define syntax_reference_p(x)
#define expression_domain
newgen_execution_domain_defined
#define control_undefined
#define loop_execution(x)
#define syntax_reference(x)
#define instruction_loop_p(x)
#define reference_variable(x)
#define loop_domain
newgen_language_domain_defined
#define control_predecessors(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define CONTROL(x)
CONTROL.
#define call_domain
newgen_callees_domain_defined
#define EXPRESSION(x)
EXPRESSION.
#define sequence_statements(x)
#define reference_indices(x)
#define control_successors(x)
#define control_undefined_p(x)
#define statement_instruction(x)
#define instruction_call(x)
#define call_arguments(x)
#define expression_syntax(x)
#define sequence_domain
newgen_reference_domain_defined
#define execution_parallel_p(x)
#define statement_undefined
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.