PIPS
|
#include <stdio.h>
#include <string.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "ri-util.h"
#include "effects.h"
#include "effects-util.h"
#include "misc.h"
Go to the source code of this file.
Functions | |
list | cell_relations_generic_binary_op (list l1, list l2, bool(*cr1_cr2_combinable_p)(cell_relation, cell_relation), list(*cr1_cr2_binary_op)(cell_relation, cell_relation), list(*cr1_unary_op)(cell_relation), list(*cr2_unary_op)(cell_relation), list(*union_op)(list, list)) |
functions specific to cell_relations More... | |
list cell_relations_generic_binary_op | ( | list | l1, |
list | l2, | ||
bool(*)(cell_relation, cell_relation) | cr1_cr2_combinable_p, | ||
list(*)(cell_relation, cell_relation) | cr1_cr2_binary_op, | ||
list(*)(cell_relation) | cr1_unary_op, | ||
list(*)(cell_relation) | cr2_unary_op, | ||
list(*)(list, list) | union_op | ||
) |
functions specific to cell_relations
beware : modifies l1, l2 and their effects
l1 | and l2 are two lists of cell_relations. |
cr1_cr2_combinable_p | is a bool function that takes two individual cell_relations as arguments and renders true when they are considered as combinable ; |
cr1_cr2_binary_op | is a binary operator that combines two individual cell_relations; |
cr1_unary_op | is a unary operators that deal with the remnants of l1, that is those cell_relations that are not combinable with any effect of l2; |
cr2_unary_op | is a unary operators that deal with the remnants of l2, that is those cell_relations that are not combinable with any effect of l1; |
we first deal with the elements of l1 : those that are combinable with the elements of l2, and the others, which we call the remnants of l1
gen_remove(&l2, EFFECT(CAR(l_cr2)));
cr1 belongs to the remnants of l1 : it is combinable with no effects of l2
we must then deal with the remnants of l2
no memory leaks: l1 and l2 won't be used anymore
l1 | 1 |
l2 | 2 |
Definition at line 59 of file cell_relations.c.
References CAR, CDR, CELL_RELATION, cell_relation_undefined, debug_off, debug_on, ENDP, free(), free_cell_relation(), gen_free_list(), gen_nconc(), list_undefined, NIL, pips_debug, pips_debug_pv, pips_debug_pvs, and POP.
Referenced by simple_pvs_may_union(), and simple_pvs_must_union().