package frama-c
Module Eva.Eva_annotationsSource
Register special annotations to locally guide the Eva analysis:
- slevel annotations: "slevel default", "slevel merge" and "slevel i"
- loop unroll annotations: "loop unroll term"
- value partitioning annotations: "split term" and "merge term"
- subdivision annotations: "subdivide i"
type unroll_annotation = | UnrollAmount of Frama_c_kernel.Cil_types.term(*Unroll the n first iterations.
*)| UnrollFull(*Unroll amount defined by -eva-default-loop-unroll.
*)
Loop unroll annotations.
type split_term = | Expression of Frama_c_kernel.Cil_types.exp| Predicate of Frama_c_kernel.Cil_types.predicate
type flow_annotation = | FlowSplit of split_term * split_kind(*Split states according to a term.
*)| FlowMerge of split_term(*Merge states separated by a previous split.
*)
Split/merge annotations for value partitioning.
type array_segmentation =
Frama_c_kernel.Cil_types.varinfo
* Frama_c_kernel.Cil_types.offset
* Frama_c_kernel.Cil_types.exp listtype domain_scope = string * Frama_c_kernel.Cil_types.varinfo listval get_slevel_annot :
Frama_c_kernel.Cil_types.stmt ->
slevel_annotation optionval get_unroll_annot : Frama_c_kernel.Cil_types.stmt -> unroll_annotation listval get_flow_annot : Frama_c_kernel.Cil_types.stmt -> flow_annotation listval get_subdivision_annot : Frama_c_kernel.Cil_types.stmt -> int listval get_allocation : Frama_c_kernel.Cil_types.stmt -> allocation_kindval add_slevel_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
slevel_annotation ->
unitval add_unroll_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
unroll_annotation ->
unitval add_flow_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
flow_annotation ->
unitval add_subdivision_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
int ->
unitval add_array_segmentation :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
array_segmentation ->
unitval add_domain_scope :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
domain_scope ->
unit