Skip to content

Commit 48e53bc

Browse files
committed
Cleanup of analyses
1 parent 45a201e commit 48e53bc

File tree

1 file changed

+1
-103
lines changed

1 file changed

+1
-103
lines changed

src/framework/analyses.ml

Lines changed: 1 addition & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -262,108 +262,6 @@ sig
262262
val event : (D.t, G.t, C.t, V.t) man -> Events.t -> (D.t, G.t, C.t, V.t) man -> D.t
263263
end
264264

265-
(* module type BackwSpec =
266-
sig
267-
module D : Lattice.S
268-
module G : Lattice.S
269-
module C : Printable.S
270-
module V: SpecSysVar (** Global constraint variables. *)
271-
module P: DisjointDomain.Representative with type elt := D.t (** Path-representative. *)
272-
273-
module D_forw: Lattice.S
274-
module G_forw: Lattice.S
275-
module V_forw: SpecSysVar (** Global constraint variables. *)
276-
module P_forw: DisjointDomain.Representative with type elt := D_forw.t (** Path-representative. *)
277-
val name : unit -> string
278-
279-
(** Auxiliary data (outside of solution domains) that needs to be marshaled and unmarshaled.
280-
This includes:
281-
* hashtables,
282-
* varinfos (create_var),
283-
* RichVarinfos. *)
284-
type marshal
285-
286-
(** Initialize using unmarshaled auxiliary data (if present). *)
287-
val init : marshal option -> unit
288-
289-
(** Finalize and return auxiliary data to be marshaled. *)
290-
val finalize : unit -> marshal
291-
(* val finalize : G.t -> unit *)
292-
293-
val startstate : varinfo -> D.t
294-
val morphstate : varinfo -> D.t -> D.t
295-
val exitstate : varinfo -> D.t
296-
297-
val context: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> fundec -> D.t -> C.t
298-
val startcontext: unit -> C.t
299-
300-
val sync : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> [`Normal | `Join | `JoinCall of CilType.Fundec.t | `Return] -> D.t
301-
val query : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> 'a Queries.t -> 'a Queries.result
302-
303-
(** A transfer function which handles the assignment of a rval to a lval, i.e.,
304-
it handles program points of the form "lval = rval;" *)
305-
val assign: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval -> exp -> D.t
306-
307-
(** A transfer function used for declaring local variables.
308-
By default only for variable-length arrays (VLAs). *)
309-
val vdecl : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> varinfo -> D.t
310-
311-
(** A transfer function which handles conditional branching yielding the
312-
truth value passed as a boolean argument *)
313-
val branch: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> exp -> bool -> D.t
314-
315-
(** A transfer function which handles going from the start node of a function (fundec) into
316-
its function body. Meant to handle, e.g., initialization of local variables *)
317-
val body : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> fundec -> D.t
318-
319-
(** A transfer function which handles the return statement, i.e.,
320-
"return exp" or "return" in the passed function (fundec) *)
321-
val return: (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> exp option -> fundec -> D.t
322-
323-
(** A transfer function meant to handle inline assembler program points *)
324-
val asm : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> D.t
325-
326-
(** A transfer function which works as the identity function, i.e., it skips and does nothing.
327-
Used for empty loops. *)
328-
val skip : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> D.t
329-
330-
(** A transfer function which, for a call to a {e special} function f "lval = f(args)" or "f(args)",
331-
computes the caller state after the function call *)
332-
val special : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval option -> varinfo -> exp list -> D.t
333-
334-
(** For a function call "lval = f(args)" or "f(args)",
335-
[enter] returns a caller state, and the initial state of the callee.
336-
In [enter], the caller state can usually be returned unchanged, as [combine_env] and [combine_assign] (below)
337-
will compute the caller state after the function call, given the return state of the callee *)
338-
val enter : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval option -> fundec -> exp list -> (D.t * D.t) list
339-
340-
(* Combine is split into two steps: *)
341-
342-
(** Combine environment (global variables, mutexes, etc)
343-
between local state (first component from enter) and function return.
344-
345-
This shouldn't yet assign to the lval. *)
346-
val combine_env : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval option -> exp -> fundec -> exp list -> C.t option -> D.t -> Queries.ask -> D.t
347-
348-
(** Combine return value assignment
349-
to local state (result from combine_env) and function return.
350-
351-
This should only assign to the lval. *)
352-
val combine_assign : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> lval option -> exp -> fundec -> exp list -> C.t option -> D.t -> Queries.ask -> D.t
353-
354-
(* Paths as sets: I know this is ugly! *)
355-
val paths_as_set : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> D.t list
356-
357-
(** Returns initial state for created thread. *)
358-
val threadenter : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> multiple:bool -> lval option -> varinfo -> exp list -> D.t list
359-
360-
(** Updates the local state of the creator thread using initial state of created thread. *)
361-
val threadspawn : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> multiple:bool -> lval option -> varinfo -> exp list -> (D.t, G.t, C.t, V.t) man -> D.t
362-
363-
val event : (D.t, G.t, C.t, V.t) man -> (ForwSpec.D.t, ForwSpec.D.t, ForwSpec.C.t, ForwSpec.V.t) man -> Events.t -> (D.t, G.t, C.t, V.t) man -> D.t
364-
end *)
365-
366-
367265
module type Spec2Spec = functor (S: Spec) -> Spec
368266

369267
module type MCPA =
@@ -545,4 +443,4 @@ sig
545443

546444
val gh: EQSys.G.t GHT.t
547445
val lh: SpecSys.Spec.D.t LHT.t (* explicit SpecSys to avoid spurious module cycle *)
548-
end
446+
end

0 commit comments

Comments
 (0)