10 #include "pips_config.h"
25 #include "resources.h"
43 parallel_loop_nest_depth);
46 if (parallel_loop_nest_depth > 0) {
82 "GPU_IFY_DEBUG_LEVEL");
statement outliner(const char *, list)
outline the statements in statements_to_outline into a module named outline_module_name the outlined ...
static statement module_statement
callees compute_callees(const statement stat)
Recompute the callees of a module statement.
void set_cumulated_rw_effects(statement_effects)
void reset_cumulated_rw_effects(void)
const char * module_name(const char *s)
Return the module part of an entity name.
#define gen_recurse(start, domain_number, flt, rwt)
statement get_current_module_statement(void)
Get the current module statement.
void * gen_identity(const void *x)
Just return the argument.
statement perfectly_nested_loop_to_body_at_depth(statement s, int depth)
Extract the loop-body of a perfect loop-nest at a given depth.
int depth_of_parallel_perfect_loop_nest(statement s)
Compute the depth of a parallel perfect loop-nest.
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)
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.
#define PIPS_PHASE_POSTLUDE(new_module_statement)
End a transformation phase by putting back into PIPS the (possibly) modified statement.
#define PIPS_PHASE_PRELUDE(module_name, debug_env_var)
Start a phase that use a module CODE.
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.
bool old__gpu_ify(const string module_name)
static void gpu_ify_statement(statement s, int depth)
list loop_nests_to_outline
Store the loop nests found that meet the spec to be executed on a GPU.
static bool mark_loop_to_outline(const statement s)
#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.
string build_new_top_level_module_name(const char *prefix, bool prevent_suffix)
Get a new name for a module built from a prefix.
#define statement_domain
newgen_sizeofexpression_domain_defined
#define statement_number(x)
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.
static int depth
la sequence de nids