module Computer: functor (
Param
:
sig
end
) ->
sig
.. end
Computer is a ForwardsTransfer to use ForwardsDataFlow
Parameters: |
Param |
: |
sig
val current_pdg : BuildPdg.t
val ctrl_dpds_infos : CtrlDpds.t
end
|
|
val name : string
val debug : bool Pervasives.ref
type
t = Build.BuildPdg.t_state
val current_pdg : Build.BuildPdg.t
val current_function : Db_types.kernel_function
val ctrl_dpds_infos : CtrlDpds.t
module StmtStartData: sig
.. end
val stmt_can_reach : Cil_types.stmt -> Cil_types.stmt -> bool
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:Build.BuildPdg.t_state ->
t -> Build.BuildPdg.t_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 ->
Build.BuildPdg.t_state -> Build.BuildPdg.t_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 : Cil_types.stmt -> bool
Whether to put this statement in the worklist.
val doGuard : 'a -> 'b -> 'c -> 'd Dataflow.guardaction
val doEdge : 'a -> 'b -> 'c -> 'c