Clan  0.8.0
Functions
relation.h File Reference
#include <clan/options.h>
Include dependency graph for relation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void clan_relation_tag_array (struct osl_relation *, int)
struct osl_relation * clan_relation_build_context (int, clan_options_p)
struct osl_relation * clan_relation_scattering (int *, int, int)
void clan_relation_new_output_vector (struct osl_relation *, struct osl_vector *)
void clan_relation_new_output_scalar (struct osl_relation *, int)
void clan_relation_compact (struct osl_relation *, int)
struct osl_relation * clan_relation_greater (struct osl_relation *, struct osl_relation *, int)
struct osl_relation * clan_relation_not (struct osl_relation *)
void clan_relation_and (struct osl_relation *, struct osl_relation *)
int clan_relation_existential (struct osl_relation *)
void clan_relation_oppose_row (struct osl_relation *, int)
struct osl_relation * clan_relation_stride (struct osl_relation *, int, int)
void clan_relation_simplify (struct osl_relation *)
void clan_relation_loop_context (struct osl_relation *, struct osl_relation *, int)

Function Documentation

void clan_relation_and ( struct osl_relation *  ,
struct osl_relation *   
)
struct osl_relation* clan_relation_build_context ( int  nb_parameters,
clan_options_p  options 
) [read]

clan_relation_build_context function: this function builds a context relation with 'nb_parameters' parameters. Depending on the bounded_context option, the context has no contraint or each parameter is set to be >= -1.

Parameters:
[in]nb_parametersThe number of parameters for the context.
[in]optionsThe global options of Clan.
Returns:
A context relation with 'nb_parameters' parameters.

Definition at line 93 of file relation.c.

References clan_options::bounded_context, and clan_options::precision.

Referenced by yyparse().

void clan_relation_compact ( struct osl_relation *  ,
int   
)
int clan_relation_existential ( struct osl_relation *  )
struct osl_relation* clan_relation_greater ( struct osl_relation *  ,
struct osl_relation *  ,
int   
) [read]
void clan_relation_loop_context ( struct osl_relation *  ,
struct osl_relation *  ,
int   
)
void clan_relation_new_output_scalar ( struct osl_relation *  ,
int   
)
void clan_relation_new_output_vector ( struct osl_relation *  ,
struct osl_vector *   
)
struct osl_relation* clan_relation_not ( struct osl_relation *  ) [read]
void clan_relation_oppose_row ( struct osl_relation *  ,
int   
)
struct osl_relation* clan_relation_scattering ( int *  vector,
int  depth,
int  precision 
) [read]

clan_relation_scattering function: this function builds the scattering relation for the clan_statement_t structures thanks to the parser current state of parser_scattering (rank) and parser_depth (depth). The input scattering vector has 2depth+1 elements. Each even element gives the "position" of the statement for every loop depth (see Feautrier's demonstration of existence of a schedule for any SCoP or CLooG's manual for original scattering function to understand if necessary). Each This function just "expands" this vector to a (2*n+1)-dimensional schedule for a statement at depth n and returns it. Each odd element gives the loop direction: 1 for forward (meaning the loop stride is positive) -1 for backward (the loop stride is negative).

Parameters:
[in]vectorThe statement position / loop direction vector.
[in]depthThe depth of the statement.
[in]precisionThe precision of the relation elements.

Definition at line 133 of file relation.c.

References CLAN_MAX_PARAMETERS.

Referenced by yyparse().

void clan_relation_simplify ( struct osl_relation *  )
struct osl_relation* clan_relation_stride ( struct osl_relation *  ,
int  ,
int   
) [read]
void clan_relation_tag_array ( struct osl_relation *  ,
int   
)