25 #include "pips_config.h"
91 if (strcmp (prop,
"ignore") == 0) {
94 else if (strcmp (prop,
"or") == 0) {
97 else if (strcmp (prop,
"and") == 0) {
349 pips_assert (
"Can only merge a list of pragma as expression",
396 if(priv_var !=
NIL) {
427 string ps = copy_flag ?
strdup(s) : (
char*)s ;
int get_int_property(const string)
list gen_expression_cons(expression p, list l)
call make_call(entity a1, list a2)
syntax make_syntax_call(call _field_)
expression make_expression(syntax a1, normalized a2)
list gen_extension_cons(extension p, list l)
pragma make_pragma_expression(list _field_)
extension make_extension_pragma(pragma _field_)
pragma make_pragma_string(string _field_)
char * get_string_property(const char *)
#define ENDP(l)
Test if a list is empty.
void gen_remove(list *cpp, const void *o)
remove all occurences of item o from list *cpp, which is thus modified.
#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 FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
#define FORTRAN_PRAGMA_HEADER_STRING
#define FORTRAN_OMP_CONTINUATION_STRING
bool set_belong_p(const set, const void *)
set set_make(set_type)
Create an empty set of any type but hash_private.
set set_add_element(set, const set, const void *)
#define C_AND_OPERATOR_NAME
#define C_GREATER_OR_EQUAL_OPERATOR_NAME
#define ENTITY_OMP_PARALLEL_P(e)
if_clause_policy
that is all for ri-util-local.h
#define ENTITY_OMP_OMP_P(e)
#define ENTITY_OMP_IF_P(e)
OMP entity test.
#define AND_OPERATOR_NAME
FI: intrinsics are defined at a third place after bootstrap and effects! I guess the name should be d...
#define OMP_FOR_FUNCTION_NAME
#define OMP_OMP_FUNCTION_NAME
#define OMP_PARALLEL_FUNCTION_NAME
#define ENTITY_OMP_PRIVATE_P(e)
#define GREATER_OR_EQUAL_OPERATOR_NAME
#define OMP_IF_FUNCTION_NAME
OMP related function and opertor names.
#define C_OR_OPERATOR_NAME
#define ENTITY_OMP_FOR_P(e)
#define ENTITY_OMP_REDUCTION_P(e)
#define OMP_PRIVATE_FUNCTION_NAME
list entities_to_expressions(list l_ent)
build a list of expressions from a list of entities
entity CreateIntrinsic(string name)
this function does not create an intrinsic function because they must all be created beforehand by th...
expression expressions_to_operation(const list l_exprs, entity op)
take a list of expression and apply a binary operator between all of them and return it as an express...
call expression_call(expression e)
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
bool expression_equal_in_list_p(expression e, list le)
This function returns true, if there exists an expression equal in the list false,...
entity expression_to_entity(expression e)
just returns the entity of an expression, or entity_undefined
expression call_to_expression(call c)
Build an expression that call a function or procedure.
static bool is_expression_omp_omp_p(expression exp)
static expression merge_conditions(list l_cond, if_clause_policy policy, language l)
const string FORTRAN_PRAGMA_HEADER
pragma.c
list pragma_omp_parallel_as_exprs(void)
list pragma_omp_merge_expr(list outer_extensions, list l_pragma, language l)
merge omp pragma.
expression pragma_if_as_expr(expression arg)
static bool is_expression_omp_parallel_p(expression exp)
list filter_variables_in_pragma_expr(list l_expr, list to_filter)
filter out a pragma (expression list) removing all requested variables @params l_expr is the list of ...
void add_pragma_expr_to_statement(statement st, list l)
Add a pragma as a list of expression to a statement.
list pragma_omp_parallel_for_as_exprs(void)
static if_clause_policy get_if_clause_policy(void)
const string FORTRAN_OMP_CONTINUATION
static bool is_expression_omp_reduction_p(expression exp)
void add_pragma_str_to_statement(statement st, const char *s, bool copy_flag)
Add a string as a pragma to a statement.
static bool is_expression_omp_for_p(expression exp)
expression pragma_private_as_expr(list args_ent)
static bool is_expression_omp_private_p(expression exp)
expression pragma_private_as_expr_with_args(list args_expr)
static bool is_expression_omp_if_p(expression exp)
void add_pragma_strings_to_statement(statement st, list l, bool copy_flag)
Add a list of strings as as many pragmas to a statement.
expression pragma_build_if_condition(expression cond, language l)
build the expression to be put in the if clause.
#define normalized_undefined
#define pragma_expression_p(x)
#define EXPRESSION(x)
EXPRESSION.
#define extension_pragma(x)
#define EXTENSION(x)
EXTENSION.
#define pragma_expression(x)
#define expression_undefined
#define statement_extensions(x)
#define extensions_extension(x)
#define call_arguments(x)
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.
#define exp
Avoid some warnings from "gcc -Wshadow".