2 #include "pips_config.h"
28 #include "resources.h"
55 #include "constants.h"
60 #include "resources.h"
112 bool startSearch =
false;
132 *pragma_added_p =
false;
142 *pragma_added_p =
false;
152 *pragma_added_p =
false;
161 *pragma_added_p =
false;
169 *pragma_added_p =
true;
175 bool testFunction =
false;
219 last_added_pragma =
stmt;
246 if (testStatic && !pragma_added_p) {
248 last_added_pragma =
stmt;
251 else if (!testStatic && pragma_added_p) {
256 else if (!testStatic && !pragma_added_p) {
277 last_added_pragma =
stmt;
303 if (pragma_added_p) {
316 last_added_pragma = s;
335 last_added_pragma = s;
350 if (testStatic && !pragma_added_p) {
352 last_added_pragma = s;
355 else if (!testStatic && !pragma_added_p) {
void clear_pragma_on_statement(statement)
Remove all pragma attached to a given statement.
const char * module_name(const char *s)
Return the module part of an entity name.
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
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.
statement get_current_module_statement(void)
Get the current module statement.
entity set_current_module_entity(entity)
static.c
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
void gen_insert_after(const void *no, const void *o, list l)
list gen_insert_before(const void *no, const void *o, list l)
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 statement_test_p(statement)
bool statement_forloop_p(statement)
bool statement_loop_p(statement)
bool statement_sequence_p(statement)
Statement classes induced from instruction type.
bool return_statement_p(statement)
Test if a statement is a C or Fortran "return".
bool statement_with_pragma_p(statement)
Test if a statement has some pragma.
void insert_statement(statement, statement, bool)
This is the normal entry point.
statement make_continue_statement(entity)
bool declaration_statement_p(statement)
Had to be optimized according to Beatrice Creusillet.
#define GET_STATEMENT_MAPPING(map, stat)
hash_table statement_mapping
these macros are obsolete! newgen functions (->) should be used instead
struct _newgen_struct_static_control_ * static_control
#define static_control_yes(x)
static void add_to_stmt(statement stmt, bool *pragma_added_p)
Add a "scop" pragma to the statement stmt.
static void pragma_scop(statement s, bool pragma_added_p, bool in_loop_p)
Called recursively, place pragmas on statements according to SCoP conditions.
static bool are_stmts_eq(statement stmt1, statement stmt2)
bool pocc_prettyprinter(char *module_name)
use the result of control static to add pragmas for pocc compiler , that pragmas delimit control stat...
static statement_mapping Gsc_map
static void insert_endscop_after_stmt(statement stmt, bool *pragma_added_p, sequence seqInst, statement last_added_pragma)
Check if the SCoP is rich, add pragma "endscop" after stmt and change the value of pragma_added_p.
static void insert_endscop_in_sequence(statement stmt, bool *pragma_added_p, bool insertBefore)
nsert a pragma "endscop" before/after the statement stmt Insert a ";" statement in sequence with stmt...
bool condition_body_contains_loop_p(statement s)
Look for a loop in a statement.
static void insert_endscop_before_stmt(statement stmt, bool *pragma_added_p, sequence seqInst, list stmts, statement last_added_pragma)
Check if the SCoP is rich, add pragma "endscop" before stmt and change the value of pragma_added_p.
void * arc_label
tatic_control
bool condition_contains_loop_p(statement s)
Checks if a test contains a loop.
bool is_SCOP_rich(sequence seq, statement last_added_pragma, statement curStmt, bool *pragma_added_p)
Checks if there is at least one loop in the sequence.
bool is_subroutine(instruction inst)
Returns true if the instruction is a subroutine.
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
entity entity_empty_label(void)
bool user_call_p(call c)
Test if a call is a user call.
void add_pragma_str_to_statement(statement st, const char *s, bool copy_flag)
Add a string as a pragma to a statement.
#define type_functional_p(x)
#define functional_result(x)
#define instruction_loop(x)
#define type_functional(x)
@ is_instruction_whileloop
@ is_instruction_sequence
#define instruction_tag(x)
#define sequence_statements(x)
#define instruction_sequence(x)
#define instruction_forloop(x)
#define instruction_call_p(x)
#define instruction_whileloop(x)
#define whileloop_body(x)
#define statement_instruction(x)
#define instruction_call(x)
#define instruction_test(x)
#define statement_number(x)
#define statement_undefined
The structure used to build lists in NewGen.