29 #include "pips_config.h"
44 #include "resources.h"
87 bool found_parallel_loop_p =
false;
90 found_parallel_loop_p =
true;
95 if(found_parallel_loop_p) {
108 }
else if(promoted_stmts) {
112 promoted_stmts =
NIL;
150 debug_on(
"GPU_PROMOTE_SEQUENTIAL_DEBUG_LEVEL");
basic make_basic(enum basic_utype tag, void *val)
execution make_execution_parallel(void)
struct _newgen_struct_statement_ * statement
const char * module_name(const char *s)
Return the module part of an entity name.
#define gen_recurse(start, domain_number, flt, rwt)
statement make_block_statement(list)
Make a block statement from a list of statement.
void reset_current_module_entity(void)
Reset the current module entity.
void reset_current_module_statement(void)
Reset the current module statement.
statement set_current_module_statement(statement)
Set the current module statement.
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
bool loop_sequential_p(loop l)
Test if a loop is sequential.
bool parallel_loop_statement_p(statement s)
Test if a statement is a parallel loop.
statement make_new_loop_statement(entity i, expression low, expression up, expression inc, statement b, execution e)
This is an ad'hoc function designed for do_loop_unroll_with_epilogue().
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)
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
#define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
sequence statement_sequence(statement)
Get the sequence of a statement sequence.
bool empty_statement_or_continue_p(statement)
Return true if the statement is an empty instruction block or a continue or a recursive combination o...
bool statement_sequence_p(statement)
Statement classes induced from instruction type.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
void print_statement(statement)
Print a statement on stderr.
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
expression int_to_expression(_int i)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
entity make_new_scalar_variable(entity, basic)
#define loop_domain
newgen_language_domain_defined
#define loop_undefined_p(x)
#define sequence_statements(x)
The structure used to build lists in NewGen.