Skip to content
Snippets Groups Projects
Commit f33d6a06 authored by David Bühler's avatar David Bühler
Browse files

[Eva] Precomputes the consolidated states of all domains, and not only cvalue.

According to the -eva-join-results parameter.
parent 9786cdb1
No related branches found
No related tags found
No related merge requests found
...@@ -283,6 +283,12 @@ module Make (Domain: InputDomain) = struct ...@@ -283,6 +283,12 @@ module Make (Domain: InputDomain) = struct
if Storage.get () if Storage.get ()
then update_callstack_table ~after:true stmt callstack state then update_callstack_table ~after:true stmt callstack state
let mark_as_computed () = Table_By_Callstack.mark_as_computed () let mark_as_computed () =
(* Precompute consolidated states if required. *)
if Storage.get () && Parameters.JoinResults.get () then
Table_By_Callstack.iter
(fun s _ -> ignore (get_stmt_state ~after:false s));
Table_By_Callstack.mark_as_computed ()
let is_computed () = Storage.get () && Table_By_Callstack.is_computed () let is_computed () = Storage.get () && Table_By_Callstack.is_computed ()
end end
...@@ -109,10 +109,6 @@ let pre_analysis () = ...@@ -109,10 +109,6 @@ let pre_analysis () =
let post_analysis_cleanup ~aborted = let post_analysis_cleanup ~aborted =
Eva_utils.clear_call_stack (); Eva_utils.clear_call_stack ();
(* Precompute consolidated states if required *)
if Parameters.JoinResults.get () then
Db.Value.Table_By_Callstack.iter
(fun s _ -> ignore (Db.Value.get_stmt_state s));
if not aborted then if not aborted then
(* Keep memexec results for users that want to resume the analysis *) (* Keep memexec results for users that want to resume the analysis *)
Mem_exec.cleanup_results () Mem_exec.cleanup_results ()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment