PIPS
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "effects.h"
#include "ri-util.h"
#include "prettyprint.h"
#include "effects-util.h"
#include "misc.h"
#include "text-util.h"
#include "newgen_set.h"
#include "points_to_private.h"
#include "pointer_values.h"
#include "effects-generic.h"
#include "effects-simple.h"
Go to the source code of this file.
list effect_to_constant_path_effects_with_points_to | ( | effect | eff, |
statement | s, | ||
transformer | context | ||
) |
We have not found any equivalent constant path : it may point anywhere
We should maybe contract these effects later. Is it done by the callers ?
make the resulting effects action to the current effect action
This is dead code: no effects, do not modify le
eff | ff |
context | ontext |
Definition at line 284 of file eval.c.
References CONS, copy_effect(), EFFECT, effect_any_reference, effect_cell, effect_descriptor, effect_may_p, effect_read_p, effect_reference_dereferencing_p(), effects_private_current_context_empty_p(), effects_private_current_context_head(), effects_to_may_effects(), effects_to_read_effects(), ENDP, eval_simple_cell_with_points_to(), gen_nconc(), load_pt_to_list(), NIL, pips_debug, pips_debug_effect, points_to_list_bottom, points_to_list_list, ref, and transformer_undefined.
Referenced by add_values_for_simple_effects_of_statement(), c_user_call_to_transformer(), and simple_effect_to_constant_path_effects_with_points_to().
for backward compatibility
ptl | tl |
exact_p | xact_p |
Definition at line 352 of file eval.c.
References CELL, cell_undefined, CONS, descriptor_undefined, EFFECT, effect_cell, eval_simple_cell_with_points_to(), FOREACH, gen_full_free_list(), NIL, and transformer_undefined.
list eval_simple_cell_with_points_to | ( | cell | c, |
descriptor __attribute__((unused)) | d, | ||
list | ptl, | ||
bool * | exact_p, | ||
transformer __attribute__((unused)) | t | ||
) |
Definition at line 194 of file eval.c.
References descriptor_undefined, generic_eval_cell_with_points_to(), simple_cell_reference_preceding_p(), simple_cell_reference_with_address_of_cell_reference_translation(), simple_reference_to_simple_reference_conversion(), and transformer_undefined.
Referenced by effect_to_constant_path_effects_with_points_to(), and eval_cell_with_points_to().
bool path_preceding_p | ( | effect | eff1, |
effect | eff2, | ||
transformer | current_precondition, | ||
bool | strict_p, | ||
bool * | exact_p | ||
) |
eff1 | ff1 |
eff2 | ff2 |
current_precondition | urrent_precondition |
strict_p | trict_p |
exact_p | xact_p |
Definition at line 132 of file eval.c.
References current_precondition, effect_any_reference, effect_descriptor, and simple_cell_reference_preceding_p().
Referenced by c_convex_effects_on_actual_parameter_forward_translation().
bool simple_cell_preceding_p | ( | cell | c1, |
descriptor | d1, | ||
cell | c2, | ||
descriptor | d2, | ||
transformer | current_precondition, | ||
bool | strict_p, | ||
bool * | exact_p | ||
) |
c1 | 1 |
d1 | 1 |
c2 | 2 |
d2 | 2 |
current_precondition | urrent_precondition |
strict_p | trict_p |
exact_p | xact_p |
Definition at line 119 of file eval.c.
References cell_any_reference(), current_precondition, and simple_cell_reference_preceding_p().
Referenced by effect_find_aliased_paths_with_pointer_values(), and make_simple_pv_context().
bool simple_cell_reference_preceding_p | ( | reference | r1, |
descriptor __attribute__((unused)) | d1, | ||
reference | r2, | ||
descriptor __attribute__((unused)) | d2, | ||
transformer __attribute__((unused)) | current_precondition, | ||
bool | strict_p, | ||
bool * | exact_p | ||
) |
same entity and the path length of r1 is shorter than the path length of r2. we now have to check that each common index matches
Definition at line 60 of file eval.c.
References CAR, ENDP, EXPRESSION, expression_equal_p(), gen_length(), pips_debug, POP, reference_indices, reference_to_string(), reference_variable, same_entity_p(), and unbounded_expression_p().
Referenced by eval_simple_cell_with_points_to(), path_preceding_p(), and simple_cell_preceding_p().
void simple_cell_to_simple_cell_conversion | ( | cell | input_cell, |
cell * | output_cell, | ||
descriptor * | output_desc | ||
) |
input_cell | nput_cell |
output_cell | utput_cell |
output_desc | utput_desc |
Definition at line 154 of file eval.c.
References is_descriptor_none, make_descriptor(), and UU.
Referenced by effect_find_aliased_paths_with_pointer_values(), and effect_find_equivalent_pointer_values().
it should be a union here. However, we expect the caller to perform the contraction afterwards.
eff | ff |
Definition at line 206 of file eval.c.
References cell_relations_list, CONS, copy_action(), EFFECT, effect_action, effect_any_reference, effect_dup_func, effect_entity(), effect_find_aliased_paths_with_pointer_values(), effect_reference_dereferencing_p(), effects_private_current_stmt_head(), entity_abstract_location_p(), FOREACH, free_effect(), gen_free_list(), load_pv(), make_anywhere_effect(), make_simple_pv_context(), NIL, null_pointer_value_entity_p(), pips_debug, pips_debug_effects, ref, reset_pv_context(), and undefined_pointer_value_entity_p().
eff | ff |
Definition at line 343 of file eval.c.
References effect_to_constant_path_effects_with_points_to(), effects_private_current_context_head(), and effects_private_current_stmt_head().
void simple_reference_to_simple_reference_conversion | ( | reference | ref, |
reference * | output_ref, | ||
descriptor * | output_desc | ||
) |
ref | ef |
output_ref | utput_ref |
output_desc | utput_desc |
Definition at line 146 of file eval.c.
References is_descriptor_none, make_descriptor(), ref, and UU.
Referenced by eval_simple_cell_with_points_to().