7 #include "pips_config.h"
22 #include "resources.h"
40 parallel_loop_nest_depth);
43 if (parallel_loop_nest_depth > 0) {
79 "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)
static void gpu_memory_apply(statement s, int depth)
list loop_nests_to_outline
A simple phase that allocate memory on an accelerator and add memory transfer around a kernel.
static bool mark_loop_to_outline(const statement s)
bool gpu_memory(const char *module_name)
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.
#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 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.
#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 call_domain
newgen_callees_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