module Computer: functor (
Param
:
sig
end
) ->
sig
.. end
Computer is a ForwardsTransfer to use Datatflow.Forwards
Parameters: |
Param |
: |
sig
val current_pdg : BuildPdg.t
val ctrl_dpds_infos : CtrlDpds.t
end
|
|
val name : string
val pdg_debug : ('a, Format.formatter, unit) Pervasives.format -> 'a
val debug : bool Pervasives.ref
type
t = PdgTypes.data_state
val current_pdg : Build.BuildPdg.t
val current_function : Cil_types.kernel_function
val ctrl_dpds_infos : CtrlDpds.t
module StmtStartData: sig
.. end
place to store information at each point of the program during analysis
val copy : t -> t
val pretty : Format.formatter -> t -> unit
val computeFirstPredecessor : 'a -> 'b -> 'b
Transforme the state before storing it at the point before 'stmt'
when there is nothing stored yet.
val combinePredecessors : Cil_types.stmt ->
old:PdgTypes.data_state -> t -> PdgTypes.data_state option
Combine an old state with a new one at the point before 's'.
Simply 'join' the two states.
Return None if the new state is already included in the old one
to stop processing (fix point reached).
val doInstr : Cil_types.stmt ->
Cil_types.instr -> PdgTypes.data_state -> PdgTypes.data_state Dataflow.action
Compute the new state after 'instr' starting from state before 'state'.
val doStmt : Cil_types.stmt -> t -> 'a Dataflow.stmtaction
Called before processing the successors of the statements.
val filterStmt : 'a -> bool
Whether to put this statement in the worklist.
val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
used to optimize the order of the dataflow analysis.
val doGuard : 'a -> 'b -> 'c -> 'd Dataflow.guardaction * 'e Dataflow.guardaction
val doEdge : 'a -> 'b -> 'c -> 'c