6 #ifndef comp_sections_header_included
7 #define comp_sections_header_included
36 #define LIN_INVARIANT 2
41 #define LSEC(x,i) GetBoundary(x,i,1)
42 #define USEC(x,i) GetBoundary(x,i,0)
43 #define PUT_NEST(d,val) context_info_nest(simple_section_context(comp_sec_hull(comp_desc_section(d)))) = val
44 #define GET_NEST(d) context_info_nest(simple_section_context(comp_sec_hull(comp_desc_section(d))))
64 typedef unsigned int tRT;
67 #define LinExpr Pvecteur
110 #define SEQUENTIAL_COMPSEC_SUFFIX ".csec"
111 #define USER_COMPSEC_SUFFIX ".ucsec"
163 extern unsigned int ComputeIndex(
unsigned int ,
unsigned int ,
unsigned int );
unsigned int tRT
{{ Dad definition
OpFlag
used for merging linear expressions
Pvecteur MaxBoundary(Pvecteur, Pvecteur)
}}
void ComputeBoundaries(simple_section, loop, Pvecteur, Pvecteur, unsigned)
compute both boundary expression and store in the tSS array
void update_statement_local_comp_regions(statement, list)
bool summary_complementary_sections(const char *)
cproto-generated files
list comp_regions_of_call(call, transformer, list *)
}}}
Pvecteur my_vect_substract(Pvecteur, Pvecteur)
void PrintLinExpr(Pvecteur)
}}
bool print_source_comp_regions(const char *)
list comp_regions_of_iolist(list, tag, transformer)
}}
void store_statement_local_comp_regions(statement, list)
list load_statement_local_comp_regions(statement)
void PutRefTemp(simple_section, int, tag)
}}
comp_desc_set list_to_comp_secs(list)
dbase.c
list comp_regions_of_expressions(list, transformer)
}}}
text text_comp_region(effect)
}}
dad_struct AllocateDadStruct(int)
}}
list comp_regions_of_write(reference, transformer)
}}}
Pvecteur MinBoundary(Pvecteur, Pvecteur)
}}
list CompRegionsExactUnion(list, list, bool(*)(effect, effect))
list comp_regions_of_range(range, transformer)
}}}
list comp_regions_of_statement(statement)
}}}
Pvecteur MergeLinExprs(Pvecteur, Pvecteur, OpFlag)
}}
list comp_region_add_to_regions(comp_desc, list)
void region_add_to_regions(region reg, list l_reg) input : a region and a list of regions.
bool CompIntersection(comp_sec, comp_sec)
void DisplayRefTemp(simple_section)
}}
Pvecteur Lbound(loop, Pvecteur)
}}
list comp_regions_dup(list)
REGIONS AND LISTS OF REGIONS MANIPULATION
list affect_comp_regions(entity, list, transformer)
statement_mapping get_local_comp_regions_map(void)
void DisplayDad(comp_desc)
Pvecteur GetBoundary(simple_section, int, unsigned)
}}
unsigned int tRT
{{ Dad definition
statement_mapping listmap_to_compsecs_map(statement_mapping)
void UpdateUnresolved(simple_section, loop)
}}
bool DivExists(loop, Pvecteur)
check whether loop index variable var is contained in LinExpr
void ComputeRTandSS(expression, unsigned, simple_section, loop)
initialise reference template and shapes for inner most references
statement_mapping comp_secs_map_to_listmap(statement_mapping)
void ScanAllDims(loop, comp_desc)
}}
void delete_statement_local_comp_regions(statement)
list comp_regions_of_block(list)
}}}
void make_local_comp_regions_map(void)
list comp_regions_of_instruction(instruction, transformer, transformer, list *)
}}}
void reset_local_comp_regions_map(void)
void free_local_comp_regions_map(void)
text text_comp_regions(list)
}}
unsigned int ComputeIndex(unsigned int, unsigned int, unsigned int)
}}
simple_section SimpUnion(simple_section, simple_section)
}}
list comp_regions_of_read(reference, transformer)
}}}
tVariants TransRefTemp(loop, comp_desc)
}}
comp_sec CompUnion(comp_sec, comp_sec)
void TranslateRefsToLoop(loop, list)
}}
bool local_comp_regions_map_undefined_p(void)
propagate.c
comp_desc InitCompDesc(reference, tag)
operators.c
struct Variants tVariants
}}
bool print_code_comp_regions(const char *)
list comp_regions_of_test(test, transformer, list *)
list comp_regions_of_unstructured(unstructured, transformer)
}}}
tag GetRefTemp(simple_section, _int)
}}
list no_write_comp_regions(entity, list, transformer)
list comp_regions_of_loop(loop, transformer, transformer, list *)
comp_desc comp_region_dup(comp_desc)
bool IsExprConst(Pvecteur)
}}
void set_local_comp_regions_map(statement_mapping)
bool comp_regions(const char *)
}}}
Pvecteur my_vect_var_subst(Pvecteur, Variable, Pvecteur)
ss.c
list comp_regions_of_expression(expression, transformer)
{{{ comp_regions_of_expression
void PutBoundPair(simple_section, _int, Pvecteur, Pvecteur)
}}
void TransSimpSec(comp_desc, loop, tVariants *)
struct DadComponent DadComp
Simple Section part of DAD An array of type SimpBound struct allocated dynamically based on rank of a...
Pvecteur Ubound(loop, Pvecteur)
list proper_comp_regions_of_intrinsic(entity, list, transformer)
}}
simple_section AllocateSimpleSection(reference)
void PrintCompRegions(list)
}}
bool complementary_sections(const char *)
struct sSimpBound tSS
bounds are retained as high level tree structures to accommodate symbolic information in boundary exp...
void TranslateToLoop(loop, comp_desc)
}}
list comp_regions_of_ioelem(expression, tag, transformer)
}}
list comp_regions_of_intrinsic(entity, list, transformer)
myintrinsics.c
list comp_desc_set_to_list(comp_desc_set)
list comp_regions_of_implied_do(expression, tag, transformer)
}}
Pvecteur CopyAccVec(Pvecteur)
}}
list comp_regions_of_syntax(syntax, transformer)
}}}
list io_comp_regions(entity, list, transformer)
}}
bool print_code_complementary_sections(const char *)
text get_text_comp_regions(const char *)
prettyprint.c
void PrintSimp(comp_desc)
}}
bool statement_local_comp_regions_undefined_p(statement)
unsigned int CardinalityOf(list)
list CompRegionsMayUnion(list, list, bool(*)(effect, effect))
void DisplaySimpleSection(simple_section)
}}
OpFlag
used for merging linear expressions
expression GetAccVec(unsigned, const reference)
return the n'th subscript expression
text text_all_comp_regions(list)
}}
Simple Section part of DAD An array of type SimpBound struct allocated dynamically based on rank of a...
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
The structure used to build lists in NewGen.
bounds are retained as high level tree structures to accommodate symbolic information in boundary exp...
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....