31 #define ANY_MODULE_NAME "*ANY_MODULE*"
32 #define ANYWHERE_LOCATION "*ANYWHERE*"
33 #define NOWHERE_LOCATION "*NOWHERE*"
35 #define NULL_POINTER_NAME "*NULL*"
36 #define UNDEFINED_LOCATION "*UNDEFINED*"
38 #define UNDEFINED_POINTER_VALUE_NAME "*UNDEFINED*"
39 #define NULL_POINTER_VALUE_NAME "*NULL*"
41 #define PHI_PREFIX "PHI"
42 #define PSI_PREFIX "PSI"
43 #define RHO_PREFIX "RHO"
44 #define BETA_PREFIX "BETA"
51 #define effect_any_entity(e) effect_to_entity(e)
52 #define effect_action_tag(eff) action_tag(effect_action(eff))
53 #define effect_approximation_tag(eff) \
54 approximation_tag(effect_approximation(eff))
72 #define effect_read_p(eff) (action_tag(effect_action(eff))==is_action_read)
73 #define effect_write_p(eff) (action_tag(effect_action(eff))==is_action_write)
74 #define effect_may_p(eff) \
75 (approximation_tag(effect_approximation(eff)) == is_approximation_may)
76 #define effect_must_p(eff) \
77 (approximation_tag(effect_approximation(eff)) == is_approximation_must)
78 #define effect_exact_p(eff) \
79 (approximation_tag(effect_approximation(eff)) ==is_approximation_exact)
86 #define effect_variable(e) reference_variable(effect_any_reference(e))
95 #define variable_phi_p(e) \
96 ((e)!=(entity)NULL && (e)!=entity_undefined && \
97 strncmp(entity_name(e), REGIONS_MODULE_NAME, 10)==0 && \
98 strstr(entity_name(e), PHI_PREFIX) != NULL)
100 #define variable_psi_p(e) \
101 ((e)!=(entity)NULL && (e)!=entity_undefined && \
102 strncmp(entity_name(e), REGIONS_MODULE_NAME, 10)==0 && \
103 strstr(entity_name(e), PSI_PREFIX) != NULL)
105 #define variable_rho_p(e) \
106 ((e)!=(entity)NULL && (e)!=entity_undefined && \
107 strncmp(entity_name(e), REGIONS_MODULE_NAME, 10)==0 && \
108 strstr(entity_name(e), RHO_PREFIX) != NULL)
110 #define variable_beta_p(e)\
111 ((e)!=(entity)NULL && (e)!=entity_undefined && \
112 strncmp(entity_name(e), REGIONS_MODULE_NAME, 10)==0 && \
113 strstr(entity_name(e), BETA_PREFIX) != NULL)
115 #define effect_system(e) \
116 (descriptor_convex_p(effect_descriptor(e))? \
117 descriptor_convex(effect_descriptor(e)) : SC_UNDEFINED)
126 #define effect_reference(e) \
130 effect_reference_not_defined_anymore()
133 #define effect_any_reference(e) \
134 (cell_preference_p(effect_cell(e))? preference_reference(cell_preference(effect_cell(e))) : cell_reference(effect_cell(e)))
135 #define make_preference_simple_effect(reference,action,approximation)\
136 make_effect(make_cell(is_cell_preference, make_preference(reference)),\
137 (action), (approximation), \
138 make_descriptor(is_descriptor_none,UU))
140 #define make_reference_simple_effect(reference,action,approximation)\
141 make_effect(make_cell(is_cell_reference, (reference)), \
142 (action), (approximation), \
143 make_descriptor(is_descriptor_none,UU))
145 #define make_simple_effect(reference,action,approximation)\
146 make_effect(make_cell(is_cell_preference, make_preference(reference)),\
147 (action), (approximation), \
148 make_descriptor(is_descriptor_none,UU))
150 #define make_convex_effect(reference,action,approximation,system)\
151 make_effect(make_cell(is_reference, (reference)), \
152 (action), (approximation), \
153 make_descriptor(is_descriptor_convex,system))
158 #define cell_relation_first_cell(cr)\
159 interpreted_cell_cell(cell_relation_first(cr))
161 #define cell_relation_first_interpretation_tag(cr)\
162 cell_interpretation_tag(interpreted_cell_cell_interpretation(cell_relation_first(cr)))
164 #define cell_relation_first_value_of_p(cr)\
165 cell_interpretation_value_of_p(interpreted_cell_cell_interpretation(cell_relation_first(cr)))
167 #define cell_relation_first_address_of_p(cr)\
168 cell_interpretation_address_of_p(interpreted_cell_cell_interpretation(cell_relation_first(cr)))
170 #define cell_relation_second_cell(cr)\
171 interpreted_cell_cell(cell_relation_second(cr))
173 #define cell_relation_second_interpretation_tag(cr)\
174 cell_interpretation_tag(interpreted_cell_cell_interpretation(cell_relation_second(cr)))
176 #define cell_relation_second_value_of_p(cr)\
177 cell_interpretation_value_of_p(interpreted_cell_cell_interpretation(cell_relation_second(cr)))
179 #define cell_relation_second_address_of_p(cr)\
180 cell_interpretation_address_of_p(interpreted_cell_cell_interpretation(cell_relation_second(cr)))
182 #define cell_relation_approximation_tag(cr)\
183 approximation_tag(cell_relation_approximation(cr))
185 #define cell_relation_may_p(cr)\
186 approximation_tag(cell_relation_approximation(cr))==is_approximation_may
188 #define cell_relation_exact_p(cr)\
189 approximation_tag(cell_relation_approximation(cr))==is_approximation_exact
191 #define pips_debug_pv(level, message, pv) \
192 ifdebug(level) { pips_debug(level, "%s\n", message); \
193 print_pointer_value(pv);}
195 #define pips_debug_pvs(level, message, l_pv) \
196 ifdebug(level) { pips_debug(level, "%s\n", message); \
197 print_pointer_values(l_pv);}
static string current_module
static statement current_stmt
The structure used to build lists in NewGen.