module SlicingActions:sig..end
This module deals with the action management.
It consiste of the definitions of the different kind of actions,
and the management of the action list.
typeselect =SlicingTypes.sl_mark PdgMarks.select
type n_or_d_marks
val build_simple_node_selection : ?nd_marks:n_or_d_marks ->
SlicingTypes.sl_mark -> n_or_d_marksSlicingActions.build_node_and_dpds_selection)val build_addr_dpds_selection : ?nd_marks:n_or_d_marks ->
SlicingTypes.sl_mark -> n_or_d_marksval build_data_dpds_selection : ?nd_marks:n_or_d_marks ->
SlicingTypes.sl_mark -> n_or_d_marksval build_ctrl_dpds_selection : ?nd_marks:n_or_d_marks ->
SlicingTypes.sl_mark -> n_or_d_marksval build_node_and_dpds_selection : ?nd_marks:n_or_d_marks ->
SlicingTypes.sl_mark -> n_or_d_marksSlicingTypes.Internals.node_or_dpds).
This description depend on the mark that has been asked for.
First of all, whatever the mark is, the node is selected as spare,
so that it will be visible, and so will its dependencies. Then,
if is_ctrl mark propagate a m1 control mark through the control dependencies
and do a similar thing for addr and dataval translate_crit_to_select : Db.Pdg.t ->
?to_select:select ->
((PdgTypes.Node.t * Locations.Zone.t option) list *
n_or_d_marks)
list -> select
val mk_fct_crit : SlicingInternals.fct_info ->
SlicingInternals.fct_crit -> SlicingInternals.criterionval mk_crit_fct_user_select : SlicingInternals.fct_info ->
select -> SlicingInternals.criterion
val mk_crit_fct_top : SlicingInternals.fct_info ->
SlicingTypes.sl_mark -> SlicingInternals.criterion
val mk_crit_prop_persit_marks : SlicingInternals.fct_info ->
select -> SlicingInternals.criterion
val mk_ff_user_select : SlicingInternals.fct_slice ->
select -> SlicingInternals.criterion
val mk_crit_choose_call : SlicingInternals.fct_slice -> Cil_types.stmt -> SlicingInternals.criterion
val mk_crit_change_call : SlicingInternals.fct_slice ->
Cil_types.stmt -> SlicingInternals.called_fct -> SlicingInternals.criterion
val mk_crit_missing_inputs : SlicingInternals.fct_slice ->
Cil_types.stmt -> select * bool -> SlicingInternals.criterion
val mk_crit_missing_outputs : SlicingInternals.fct_slice ->
Cil_types.stmt -> select * bool -> SlicingInternals.criterion
val mk_crit_examines_calls : SlicingInternals.fct_slice ->
SlicingTypes.sl_mark PdgMarks.info_called_outputs ->
SlicingInternals.criterion
val mk_appli_select_calls : SlicingInternals.fct_info -> SlicingInternals.criterion
val mk_crit_mark_calls : SlicingInternals.fct_info ->
Cil_types.kernel_function ->
SlicingTypes.sl_mark -> SlicingInternals.criterion
val mk_crit_add_output_marks : SlicingInternals.fct_slice ->
select -> SlicingInternals.criterion
val print_nd_and_mark_list : Format.formatter -> n_or_d_marks -> unitval print_nodes : Format.formatter -> PdgTypes.Node.t list -> unit
val print_sel_marks_list : Format.formatter -> select -> unit
val print_crit : Format.formatter -> SlicingInternals.criterion -> unit
val print_f_crit : Format.formatter -> SlicingInternals.fct_user_crit -> unit
val print_list_crit : Format.formatter -> SlicingInternals.criterion list -> unit