25 #include "pips_config.h"
41 #include "constants.h"
63 #include "resources.h"
116 list rest_other_list;
128 if (other_list !=
NIL)
130 rest_other_list = other_list;
132 other_elem =
EFFECT(
CAR(rest_other_list));
133 rest_other_list =
CDR(rest_other_list);
155 }
while (result ==
false && rest_other_list !=
NIL);
304 list rest_alias_lists, alias_list;
305 region formal_reg_caller_list;
318 alias_list =
LIST(
CAR(rest_alias_lists) );
319 formal_reg_caller_list =
EFFECT(
CAR(alias_list) );
351 rest_alias_lists =
CDR(rest_alias_lists);
352 }
while (rest_alias_lists !=
NIL && result ==
false);
373 callee_alias_class) )
406 list callee_alias_classes;
408 pips_debug(4,
"begin for callee %s\n",callee_name);
425 callee_alias_classes);
457 debug_on(
"ALIAS_CLASSES_DEBUG_LEVEL");
473 DBR_CUMULATED_EFFECTS,
effects_classes make_effects_classes(list a)
bool alias_lists(const string)
alias_lists.c
#define region
simulation of the type region
effect region_dup(effect)
void print_inout_regions(list)
void reset_action_interpretation(void)
void reset_proper_rw_effects(void)
void set_proper_rw_effects(statement_effects)
void set_cumulated_rw_effects(statement_effects)
void set_action_interpretation(string, string)
prettyprint.c
void reset_cumulated_rw_effects(void)
#define effect_exact_p(eff)
list effects_to_list(effects)
#define effects_classes_classes(x)
const char * module_name(const char *s)
Return the module part of an entity name.
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.
#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 CAR(pcons)
Get the value of the first element of a list.
#define CDR(pcons)
Get the list less its first element.
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
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.
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
struct _newgen_struct_callees_ * callees
#define callees_callees(x)
static void save_callee_class(list callee_alias_class)
global variables IN: other_lists global variables modified: other_lists
static void compare_rest_other_lists(region elem)
global variables IN: rest_list, rest_other_lists, other_lists global variables modified: rest_list,...
static void make_classes_from_lists()
global variables IN: other_lists global variables modified:class, other_lists, rest_other_lists,...
static void add_classes_callees(const char *module_name)
static bool match_this_callee_class_elem(region callee_class_elem, list callee_alias_class)
global variables IN: l_alias_lists global variables modified: l_alias_lists returns true if l_alias_l...
static bool add_callee_class_to_lists(list callee_alias_class)
global variables IN: l_alias_lists global variables modified: l_alias_lists
static void make_class_from_list(list reg_list)
global variables IN: class, rest_other_lists, other_lists global variables modified: class,...
bool alias_classes(const string module_name)
static list l_alias_lists
static list append_all_not_present(list initial_reg_list, list additional_list)
The algorithms below depend on the following properties of Alias Lists and Alias Classes:
static list rest_other_lists
static void add_classes_for_this_callee(string callee_name)
global variables IN: l_alias_lists, other_lists global variables modified: l_alias_lists,...
static list l_alias_classes
static void compare_other_list(region elem, list other_list)
global variables IN: rest_list, other_lists global variables modified: rest_list, other_lists
list append_reg_if_not_present(list reg_list, region reg)
adds reg as final element on the end of reg_list unless reg is already present in reg_list
bool same_reg_ignore_action(region reg1, region reg2)
put reg in list of one element for call to alias_pairs
void module_to_value_mappings(entity m)
void module_to_value_mappings(entity m): build hash tables between variables and values (old,...
The structure used to build lists in NewGen.