25 #include "pips_config.h"
130 int ndim, i, lower_overlap, upper_overlap;
140 for (i=1 ; i<=ndim ; i++)
146 debug(8,
"declaration_with_overlaps",
147 "%s(DIM=%d): -%d, +%d\n",
148 entity_name(ent), i, lower_overlap, upper_overlap);
150 if (lower_overlap!=0)
154 if (upper_overlap!=0)
174 pips_debug(8,
"translating overlaps from %s to %s\n",
overlap make_overlap(intptr_t a1, intptr_t a2)
void free_expression(expression p)
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
void gen_free_list(list l)
free the spine of the list
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
gen_chunk gen_nth(int n, const list l)
to be used as ENTITY(gen_nth(3, l))...
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
#define OVERLAP(x)
OVERLAP.
int HpfcExpressionToInt(expression e)
HpfcExpressionToInt(e)
list list_of_distributed_arrays_for_module(entity module)
returns the list of entities that are 'local' to module
entity load_similar_mapping(entity)
entity load_new_node(entity)
list load_overlap_status(entity)
void store_overlap_status(entity, list)
bool bound_overlap_status_p(entity)
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
void debug(const int the_expected_debug_level, const char *calling_function_name, const char *a_message_format,...)
ARARGS0.
#define TOP_LEVEL_MODULE_NAME
Module containing the global variables in Fortran and C.
#define GENERIC_GLOBAL_FUNCTION(name, type)
bool expression_constant_p(expression)
Overlap Management Module for HPFC Fabien Coelho, August 1993.
static void declaration_with_overlaps(list l)
int get_overlap(entity ent, int dim, int side)
int get_overlap(ent, dim, side)
static void deal_with_similars(list le)
updates overlaps for similar arrays that are going to be merged
static void overlap_redefine_expression(expression *pexpr, int ov)
static void overlap_redefine_expression(pexpr, ov)
static void create_overlaps(entity e)
in static_controlize
void declaration_with_overlaps_for_module(entity module)
void set_overlap(entity ent, int dim, int side, int width)
set_overlap(ent, dim, side, width)
#define PLUS_OPERATOR_NAME
entity FindOrCreateEntity(const char *package, const char *local_name)
Problem: A functional global entity may be referenced without parenthesis or CALL keyword in a functi...
expression MakeBinaryCall(entity f, expression eg, expression ed)
Creates a call expression to a function with 2 arguments.
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
dimension entity_ith_dimension(entity, int)
Another semantics would be: is this reference r to e a kill for e? In general, this cannot be answere...
bool variable_dynamic_p(entity)
int variable_entity_dimension(entity)
variable_entity_dimension(entity v): returns the dimension of variable v; scalar have dimension 0.
#define dimension_lower(x)
#define dimension_upper(x)
#define variable_dimensions(x)
#define type_variable_p(x)
The structure used to build lists in NewGen.