module F_Fct:
If the marks provided by the user respect some constraints (see Mark
),
we have that, after the marks propagation,
the mark of a node are always smaller than the sum of the marks of its
dependencies. It means that the mark of the statement x = a + b;
have to be smaller that the mark of a
plus the mark of b
at this point.
If the marks are used for visibility for instance,
it means that if this statement is visible,
so must be the computation of a
and b
, but a
and/or b
can be
visible while x
is not.
Parameters: |
|
type
mark
type
call_info
typefi =
(mark, call_info) PdgIndex.FctIndex.t
typet =
PdgTypes.Pdg.t * fi
val create : PdgTypes.Pdg.t -> t
val get_idx : t -> fi
typemark_info_inter =
mark PdgMarks.info_inter
val empty_to_prop : mark_info_inter
val mark_and_propagate : t ->
?to_prop:mark_info_inter ->
mark PdgMarks.select -> mark_info_inter