PIPS
|
#include <stdio.h>
#include <string.h>
#include <setjmp.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "effects.h"
#include "database.h"
#include "ri-util.h"
#include "effects-util.h"
#include "constants.h"
#include "misc.h"
#include "text.h"
#include "boolean.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
#include "sommet.h"
#include "ray_dte.h"
#include "sg.h"
#include "polyedre.h"
#include "union.h"
#include "effects-generic.h"
#include "effects-simple.h"
#include "effects-convex.h"
#include "semantics.h"
#include "transformer.h"
#include "pipsdbm.h"
#include "resources.h"
#include "alias-classes.h"
Go to the source code of this file.
Functions | |
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: More... | |
static void | compare_other_list (region elem, list other_list) |
global variables IN: rest_list, other_lists global variables modified: rest_list, other_lists More... | |
static void | compare_rest_other_lists (region elem) |
global variables IN: rest_list, rest_other_lists, other_lists global variables modified: rest_list, other_lists, rest_other_lists ATTENTION: recursive function compares "elem" (the current element from the list currently being made into a class) to each element of each list of "rest_other_lists" (the other lists not yet made into classes) if a match is found, "other_list" (the other list containing the matching element "other_elem") is appended to "rest_list" (the not yet treated elements from the list currently being made into a class) and "other_list" will no longer be a member of "other_lists" if not, "other_list" is appended to "other_lists" More... | |
static void | make_class_from_list (list reg_list) |
global variables IN: class, rest_other_lists, other_lists global variables modified: class, other_lists, rest_other_lists, rest_list More... | |
static void | make_classes_from_lists () |
global variables IN: other_lists global variables modified:class, other_lists, rest_other_lists, rest_list ATTENTION: recursive function More... | |
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_lists modified, i.e. More... | |
static bool | add_callee_class_to_lists (list callee_alias_class) |
global variables IN: l_alias_lists global variables modified: l_alias_lists More... | |
static void | save_callee_class (list callee_alias_class) |
global variables IN: other_lists global variables modified: other_lists More... | |
static void | add_classes_for_this_callee (string callee_name) |
global variables IN: l_alias_lists, other_lists global variables modified: l_alias_lists, other_lists More... | |
static void | add_classes_callees (const char *module_name) |
bool | alias_classes (const string module_name) |
Variables | |
static list | l_alias_lists |
static list | l_alias_classes |
static list | other_lists |
static list | class |
static list | rest_list |
static list | rest_other_lists |
global variables IN: l_alias_lists global variables modified: l_alias_lists
Definition at line 364 of file sav_alias_classes.c.
References EFFECT, MAP, match_this_callee_class_elem(), and pips_debug.
Referenced by add_classes_for_this_callee().
|
static |
Definition at line 432 of file sav_alias_classes.c.
References add_classes_for_this_callee(), callees_callees, db_get_memory_resource(), MAP, module_name(), pips_debug, and STRING.
Referenced by alias_classes().
|
static |
global variables IN: l_alias_lists, other_lists global variables modified: l_alias_lists, other_lists
Definition at line 404 of file sav_alias_classes.c.
References add_callee_class_to_lists(), db_get_memory_resource(), effects_to_list(), ifdebug, LIST, MAP, pips_debug, print_inout_regions(), and save_callee_class().
Referenced by add_classes_callees().
ATTENTION: we have to do ALL this just to call print_inout_regions for debug !!
and this to call print_region set_action_interpretation(ACTION_IN,ACTION_OUT);
that's it, but we musn't forget to reset everything below
reset_action_interpretation();
Definition at line 452 of file sav_alias_classes.c.
References add_classes_callees(), alias_lists(), CONS, db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, effects_classes_classes, free_value_mappings(), gen_nconc(), get_current_module_entity(), ifdebug, l_alias_classes, l_alias_lists, LIST, local_name_to_top_level_entity(), make_classes_from_lists(), make_effects_classes(), MAP, module, module_name(), module_to_value_mappings(), NIL, other_lists, pips_debug, print_inout_regions(), regions_dup(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_proper_rw_effects(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_proper_rw_effects(), and strdup().
The algorithms below depend on the following properties of Alias Lists and Alias Classes:
Definition at line 89 of file sav_alias_classes.c.
References append_reg_if_not_present(), EFFECT, MAP, pips_debug, and region_dup().
Referenced by compare_other_list(), and match_this_callee_class_elem().
global variables IN: rest_list, other_lists global variables modified: rest_list, other_lists
Definition at line 112 of file sav_alias_classes.c.
References ACTION_IN, ACTION_OUT, append_all_not_present(), CAR, CDR, CONS, EFFECT, effect_exact_p, gen_nconc(), ifdebug, LIST, NIL, other_lists, pips_debug, print_inout_regions(), print_region, region, reset_action_interpretation(), rest_list, same_reg_ignore_action(), and set_action_interpretation().
Referenced by compare_rest_other_lists().
|
static |
global variables IN: rest_list, rest_other_lists, other_lists global variables modified: rest_list, other_lists, rest_other_lists ATTENTION: recursive function compares "elem" (the current element from the list currently being made into a class) to each element of each list of "rest_other_lists" (the other lists not yet made into classes) if a match is found, "other_list" (the other list containing the matching element "other_elem") is appended to "rest_list" (the not yet treated elements from the list currently being made into a class) and "other_list" will no longer be a member of "other_lists" if not, "other_list" is appended to "other_lists"
Definition at line 178 of file sav_alias_classes.c.
References ACTION_IN, ACTION_OUT, CAR, CDR, compare_other_list(), ifdebug, LIST, NIL, pips_debug, print_region, reset_action_interpretation(), rest_other_lists, and set_action_interpretation().
Referenced by make_class_from_list().
|
static |
global variables IN: class, rest_other_lists, other_lists global variables modified: class, other_lists, rest_other_lists, rest_list
Definition at line 208 of file sav_alias_classes.c.
References ACTION_IN, ACTION_OUT, CAR, CDR, class, compare_rest_other_lists(), CONS, EFFECT, effect_exact_p, gen_nconc(), ifdebug, NIL, other_lists, pips_debug, print_inout_regions(), print_region, region, reset_action_interpretation(), rest_list, rest_other_lists, and set_action_interpretation().
Referenced by make_classes_from_lists().
|
static |
global variables IN: other_lists global variables modified:class, other_lists, rest_other_lists, rest_list ATTENTION: recursive function
rest_other_lists = CDR(other_lists);
other_lists = NIL;
Definition at line 254 of file sav_alias_classes.c.
References CAR, CDR, CONS, gen_nconc(), ifdebug, l_alias_classes, LIST, make_class_from_list(), MAP, NIL, other_lists, pips_debug, and print_inout_regions().
Referenced by alias_classes().
|
static |
global variables IN: l_alias_lists global variables modified: l_alias_lists returns true if l_alias_lists modified, i.e.
if callee_class_elem is present in one or more of the callers alias lists, in which case, the whole callee_alias_class is added to each of these caller alias lists
Definition at line 301 of file sav_alias_classes.c.
References ACTION_IN, ACTION_OUT, append_all_not_present(), CAR, CDR, EFFECT, ifdebug, l_alias_lists, LIST, NIL, pips_debug, print_inout_regions(), print_region, region, reset_action_interpretation(), same_reg_ignore_action(), and set_action_interpretation().
Referenced by add_callee_class_to_lists().
|
static |
global variables IN: other_lists global variables modified: other_lists
Definition at line 388 of file sav_alias_classes.c.
References CONS, gen_nconc(), LIST, NIL, other_lists, pips_debug, and regions_dup().
Referenced by add_classes_for_this_callee().
|
static |
Definition at line 68 of file sav_alias_classes.c.
Referenced by make_class_from_list().
|
static |
Definition at line 67 of file sav_alias_classes.c.
Referenced by alias_classes(), and make_classes_from_lists().
|
static |
Definition at line 67 of file sav_alias_classes.c.
Referenced by alias_classes(), and match_this_callee_class_elem().
|
static |
Definition at line 68 of file sav_alias_classes.c.
Referenced by alias_classes(), compare_other_list(), make_class_from_list(), make_classes_from_lists(), and save_callee_class().
|
static |
Definition at line 68 of file sav_alias_classes.c.
Referenced by compare_other_list(), and make_class_from_list().
|
static |
Definition at line 68 of file sav_alias_classes.c.
Referenced by compare_rest_other_lists(), and make_class_from_list().