Module Register

module Register: sig .. end

module Occurrence_datatype: Datatype.Triple(Datatype.Option(Kernel_function))(Cil_datatype.Kinstr)(Cil_datatype.Lval)
module Occurrences: sig .. end
class occurrence : object .. end
type access_type = 
| Read
| Write
| Both
class is_sub_lval : Cil_datatype.Lval.t -> object .. end

Try to find lv somewhere within a Cil value

val classify_accesses : 'a * Cil_types.kinstr * Cil_datatype.Lval.t -> access_type

Occurrence has found the given lv somewhere inside ki. We try to find whether this was inside a read or a write operation. This is difficult to do directly inside the Register.occurrence class, as the vlval method has no information about the origin of the lval it was called on

val get : Cil_datatype.Varinfo.t -> Occurrence_datatype.t list
val d_ki : Stdlib.Format.formatter ->
Kernel_function.t option * Cil_types.kinstr -> unit
val print_one : Stdlib.Format.formatter ->
Cil_types.varinfo ->
(Kernel_function.t option * Cil_types.kinstr * Cil_types.lval) list -> unit
val print_all : unit -> unit
val self : State.t
val get_last_result : unit ->
((Kernel_function.t option * Cil_types.kinstr *
(Cil_types.lhost * Cil_types.offset))
list * Cil_types.varinfo)
option
val get : Cil_datatype.Varinfo.t -> Occurrence_datatype.t list
val print_all : unit -> unit
val main : 'a -> unit