From f6c1cd1475c681029d1523e858f758fef2696615 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Mon, 17 Jan 2022 22:25:47 +0100
Subject: [PATCH] [Eva] Replaces Db.Value.self by Self.state.

---
 src/plugins/value/alarmset.ml                     | 2 +-
 src/plugins/value/domains/cvalue/builtins.ml      | 2 +-
 src/plugins/value/domains/cvalue/cvalue_domain.ml | 2 +-
 src/plugins/value/domains/domain_store.ml         | 4 ++--
 src/plugins/value/engine/analysis.ml              | 6 +++---
 src/plugins/value/engine/initialization.ml        | 2 +-
 src/plugins/value/engine/mem_exec.ml              | 2 +-
 src/plugins/value/engine/transfer_stmt.ml         | 4 ++--
 src/plugins/value/gui_files/register_gui.ml       | 2 +-
 src/plugins/value/register.ml                     | 4 ++--
 src/plugins/value/utils/eva_results.ml            | 8 ++++----
 src/plugins/value/utils/eva_utils.ml              | 2 +-
 src/plugins/value/utils/library_functions.ml      | 2 +-
 src/plugins/value/utils/red_statuses.ml           | 2 +-
 src/plugins/value/utils/summary.ml                | 2 +-
 src/plugins/value/utils/widen.ml                  | 4 ++--
 16 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/src/plugins/value/alarmset.ml b/src/plugins/value/alarmset.ml
index 4b15b9a2a61..a401f52df2d 100644
--- a/src/plugins/value/alarmset.ml
+++ b/src/plugins/value/alarmset.ml
@@ -260,7 +260,7 @@ module Alarm_cache =
   State_builder.Hashtbl (Alarm_key.Hashtbl) (Datatype.Unit)
     (struct
       let name = "Value_messages.Alarm_cache"
-      let dependencies = [Db.Value.self]
+      let dependencies = [Self.state]
       let size = 35
     end)
 
diff --git a/src/plugins/value/domains/cvalue/builtins.ml b/src/plugins/value/domains/cvalue/builtins.ml
index 57c2a2a9848..ca1f01b8dfe 100644
--- a/src/plugins/value/domains/cvalue/builtins.ml
+++ b/src/plugins/value/domains/cvalue/builtins.ml
@@ -50,7 +50,7 @@ let builtins_table = Hashtbl.create 17
 
 module Info = struct
   let name = "Eva.Builtins.BuiltinsOverride"
-  let dependencies = [ Db.Value.self ]
+  let dependencies = [ Self.state ]
 end
 (** Set of functions overridden by a builtin. *)
 module BuiltinsOverride = State_builder.Set_ref (Kernel_function.Set) (Info)
diff --git a/src/plugins/value/domains/cvalue/cvalue_domain.ml b/src/plugins/value/domains/cvalue/cvalue_domain.ml
index f2d0655ff02..30f759714e8 100644
--- a/src/plugins/value/domains/cvalue/cvalue_domain.ml
+++ b/src/plugins/value/domains/cvalue/cvalue_domain.ml
@@ -451,7 +451,7 @@ module State = struct
     module Storage =
       State_builder.Ref (Datatype.Bool)
         (struct
-          let dependencies = [Db.Value.self]
+          let dependencies = [Self.state]
           let name = name ^ ".Storage"
           let default () = false
         end)
diff --git a/src/plugins/value/domains/domain_store.ml b/src/plugins/value/domains/domain_store.ml
index 716bb29bb57..4bfa88ec212 100644
--- a/src/plugins/value/domains/domain_store.ml
+++ b/src/plugins/value/domains/domain_store.ml
@@ -58,9 +58,9 @@ module Make (Domain: InputDomain) = struct
   (* This module stores the resulting states of an Eva analysis. They depends on
      the set of parameters with which the analysis has been run, and must be
      cleared each time one of this parameter is changed. Thus, the tables of
-     this module have as dependencies Db.Value.self, the internal state of Eva
+     this module have as dependencies Self.state, the internal state of Eva
      (all parameters of Eva are added as codependencies of this state).  *)
-  let dependencies = [ Db.Value.self ]
+  let dependencies = [ Self.state ]
   let size = 16
 
   module type Ref = sig
diff --git a/src/plugins/value/engine/analysis.ml b/src/plugins/value/engine/analysis.ml
index 4542b3f7104..122e2c5ca6c 100644
--- a/src/plugins/value/engine/analysis.ml
+++ b/src/plugins/value/engine/analysis.ml
@@ -134,7 +134,7 @@ struct
     let name = "Eva.Analysis.ComputationState"
     let pretty fmt s = Format.pp_print_string fmt (to_string s)
     let reprs = [ NotComputed ; Computing ; Computed ]
-    let dependencies = [ Db.Value.self ]
+    let dependencies = [ Self.state ]
     let default () = NotComputed
   end
 
@@ -224,7 +224,7 @@ let is_computed = Db.Value.is_computed
 let compute () =
   (* Nothing to recompute when Value has already been computed. This boolean
       is automatically cleared when an option of Value changes, because they
-      are registered as dependencies on [Db.Value.self] in {!Parameters}.*)
+      are registered as dependencies on [Self.state] in {!Parameters}.*)
   if not (is_computed ()) then force_compute ()
 
 (* Resets the Analyzer when the current project is changed. *)
@@ -233,4 +233,4 @@ let () =
     ~user_only:true (fun _ -> reset_analyzer ());
   Project.register_after_global_load_hook reset_analyzer
 
-let self = Db.Value.self
+let self = Self.state
diff --git a/src/plugins/value/engine/initialization.ml b/src/plugins/value/engine/initialization.ml
index 9e50efb58ac..34df9813bc3 100644
--- a/src/plugins/value/engine/initialization.ml
+++ b/src/plugins/value/engine/initialization.ml
@@ -327,7 +327,7 @@ module Make
 
   (* Dependencies for the Frama-C states containing the initial states
      of Eva: all correctness parameters of Eva, plus the AST itself. We
-     cannot use [Db.Value.self] directly, because we do not want to
+     cannot use [Self.state] directly, because we do not want to
      depend on the tuning parameters. Previously, we use a more
      fine-grained list, but this lead to bugs. See mantis #2277. *)
   let correctness_deps =
diff --git a/src/plugins/value/engine/mem_exec.ml b/src/plugins/value/engine/mem_exec.ml
index 54c5d3f5e9f..35dc3f3e2af 100644
--- a/src/plugins/value/engine/mem_exec.ml
+++ b/src/plugins/value/engine/mem_exec.ml
@@ -82,7 +82,7 @@ module Make
       (ArgsToStoredCalls)
       (struct
         let size = 17
-        let dependencies = [Db.Value.self]
+        let dependencies = [Self.state]
         let name = "Mem_exec.PreviousCalls(" ^ string_of_int !counter ^ ")"
       end)
 
diff --git a/src/plugins/value/engine/transfer_stmt.ml b/src/plugins/value/engine/transfer_stmt.ml
index 47358794f67..3fe6dfc5177 100644
--- a/src/plugins/value/engine/transfer_stmt.ml
+++ b/src/plugins/value/engine/transfer_stmt.ml
@@ -51,7 +51,7 @@ end
 module InOutCallback =
   State_builder.Option_ref (Inout_type)
     (struct
-      let dependencies = [Db.Value.self]
+      let dependencies = [Self.state]
       let name = "Transfer_stmt.InOutCallback"
     end)
 
@@ -99,7 +99,7 @@ module DumpFileCounters =
   State_builder.Hashtbl (Datatype.String.Hashtbl) (Datatype.Int)
     (struct
       let size = 3
-      let dependencies = [ Db.Value.self ]
+      let dependencies = [ Self.state ]
       let name = "Transfer_stmt.DumpFileCounters"
     end)
 
diff --git a/src/plugins/value/gui_files/register_gui.ml b/src/plugins/value/gui_files/register_gui.ml
index 2b2cb3425ba..ab3a7c10f47 100644
--- a/src/plugins/value/gui_files/register_gui.ml
+++ b/src/plugins/value/gui_files/register_gui.ml
@@ -35,7 +35,7 @@ module UsedVarState =
     (struct
       let size = 17
       let name = "Value.Gui.UsedVarState"
-      let dependencies = [ Analysis.self ]
+      let dependencies = [ Self.state ]
       (* [!Db.Inputs.self_external; !Db.Outputs.self_external] would be better
          dependencies, but this introduces a very problematic recursion between
          Value and Inout *)
diff --git a/src/plugins/value/register.ml b/src/plugins/value/register.ml
index 8bf1ae4ac30..625c90273b3 100644
--- a/src/plugins/value/register.ml
+++ b/src/plugins/value/register.ml
@@ -24,10 +24,10 @@ open Cil_types
 open Locations
 
 let [@alert "-deprecated"] _self =
-  Db.register_compute "Value.compute" [ Db.Value.self ] Db.Value.compute
+  Db.register_compute "Value.compute" [ Self.state ] Db.Value.compute
     Analysis.compute
 
-let () = Parameters.ForceValues.set_output_dependencies [Db.Value.self]
+let () = Parameters.ForceValues.set_output_dependencies [Self.state]
 
 let main () =
   (* Value computations *)
diff --git a/src/plugins/value/utils/eva_results.ml b/src/plugins/value/utils/eva_results.ml
index bab62ba7d48..2762f635332 100644
--- a/src/plugins/value/utils/eva_results.ml
+++ b/src/plugins/value/utils/eva_results.ml
@@ -29,7 +29,7 @@ module Is_Called =
     (Datatype.Bool)
     (struct
       let name = "Value.Eva_results.is_called"
-      let dependencies = [ Db.Value.self ]
+      let dependencies = [ Self.state ]
       let size = 17
     end)
 
@@ -50,7 +50,7 @@ module Callers =
     (Kernel_function.Map.Make(Stmt.Set))
     (struct
       let name = "Value.Eva_results.Callers"
-      let dependencies = [ Db.Value.self ]
+      let dependencies = [ Self.state ]
       let size = 17
     end)
 
@@ -202,9 +202,9 @@ let get_results () =
     initial_state; initial_args; alarms; statuses; main }
 
 let set_results results =
-  let selection = State_selection.with_dependencies Db.Value.self in
+  let selection = State_selection.with_dependencies Self.state in
   Project.clear ~selection ();
-  (* Those two functions may clear Db.Value.self. Start by them *)
+  (* Those two functions may clear Self.state. Start by them *)
   (* Initial state *)
   Db.Value.globals_set_initial_state results.initial_state;
   (* Initial args *)
diff --git a/src/plugins/value/utils/eva_utils.ml b/src/plugins/value/utils/eva_utils.ml
index 5f0438cc780..6220ca09e80 100644
--- a/src/plugins/value/utils/eva_utils.ml
+++ b/src/plugins/value/utils/eva_utils.ml
@@ -104,7 +104,7 @@ module DegenerationPoints =
     (struct
       let name = "Eva_utils.Degeneration"
       let size = 17
-      let dependencies = [ Db.Value.self ]
+      let dependencies = [ Self.state ]
     end)
 
 let protect_only_once = ref true
diff --git a/src/plugins/value/utils/library_functions.ml b/src/plugins/value/utils/library_functions.ml
index c9b81edc452..5aa2f284c11 100644
--- a/src/plugins/value/utils/library_functions.ml
+++ b/src/plugins/value/utils/library_functions.ml
@@ -33,7 +33,7 @@ module Retres =
 let () = Ast.add_monotonic_state Retres.self
 
 let () =
-  State_dependency_graph.add_dependencies ~from:Retres.self [ Db.Value.self ]
+  State_dependency_graph.add_dependencies ~from:Retres.self [ Self.state ]
 
 let get_retres_vi = Retres.memo
     (fun kf ->
diff --git a/src/plugins/value/utils/red_statuses.ml b/src/plugins/value/utils/red_statuses.ml
index 903319a436b..c7e0ca34d29 100644
--- a/src/plugins/value/utils/red_statuses.ml
+++ b/src/plugins/value/utils/red_statuses.ml
@@ -64,7 +64,7 @@ module RedStatusesTable =
     (struct
       let name = "Value.Red_statuses.RedStatusesTable"
       let size = 16
-      let dependencies = [ Db.Value.self ]
+      let dependencies = [ Self.state ]
     end)
 
 let add_red_ap kinstr ap =
diff --git a/src/plugins/value/utils/summary.ml b/src/plugins/value/utils/summary.ml
index 2ed7573fe07..c75d03fb740 100644
--- a/src/plugins/value/utils/summary.ml
+++ b/src/plugins/value/utils/summary.ml
@@ -207,7 +207,7 @@ module FunctionStats = struct
       (FunctionStats_Type)
       (struct
         let name = "Eva.Summary.FunctionStats"
-        let dependencies = [ Db.Value.self ]
+        let dependencies = [ Self.state ]
         let size = 17
       end)
 
diff --git a/src/plugins/value/utils/widen.ml b/src/plugins/value/utils/widen.ml
index 05a9e0477af..c22541b3451 100644
--- a/src/plugins/value/utils/widen.ml
+++ b/src/plugins/value/utils/widen.ml
@@ -493,7 +493,7 @@ module Parsed_Dynamic_Hints =
     (struct
       let name = "Widen.Parsed_Dynamic_Hints"
       let size = 7
-      let dependencies = [ Ast.self; Db.Value.self ]
+      let dependencies = [ Ast.self; Self.state ]
     end)
 
 let dynamic_bases_of_lval states e offset =
@@ -530,7 +530,7 @@ module Dynamic_Hints =
   State_builder.Ref
     (Widen_type)
     (struct
-      let dependencies = [ Ast.self; Db.Value.self ]
+      let dependencies = [ Ast.self; Self.state ]
       let name = "Widen.Dynamic_Hints"
       let default = Widen_type.default
     end)
-- 
GitLab