aboutsummaryrefslogtreecommitdiffstats
path: root/backend/CSE3analysisaux.ml
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-12 16:46:06 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-12 16:46:06 +0100
commitc6ebd73465ef895c6ea5e240f9c784463a6a0fe5 (patch)
tree15dec58036a4ddf49954cd25565b50e17bc1b292 /backend/CSE3analysisaux.ml
parent9efb4d87c549087e2ef16103a6993a1f99328348 (diff)
downloadcompcert-kvx-c6ebd73465ef895c6ea5e240f9c784463a6a0fe5.tar.gz
compcert-kvx-c6ebd73465ef895c6ea5e240f9c784463a6a0fe5.zip
removed second analysis phase
Diffstat (limited to 'backend/CSE3analysisaux.ml')
-rw-r--r--backend/CSE3analysisaux.ml15
1 files changed, 9 insertions, 6 deletions
diff --git a/backend/CSE3analysisaux.ml b/backend/CSE3analysisaux.ml
index 392fd13f..23e20ea8 100644
--- a/backend/CSE3analysisaux.ml
+++ b/backend/CSE3analysisaux.ml
@@ -80,15 +80,18 @@ let preanalysis (tenv : typing_env) (f : RTL.coq_function) =
Some coq_id
end
in
- ignore
- (internal_analysis
+ match
+ internal_analysis
{ eq_catalog = (fun eq_id -> PTree.get eq_id !cur_catalog);
eq_find_oracle = mutating_eq_find_oracle;
eq_rhs_oracle = rhs_find_oracle ;
eq_kill_reg = (fun reg -> PMap.get reg !cur_kill_reg);
eq_kill_mem = (fun () -> !cur_kill_mem);
eq_moves = (fun reg -> PMap.get reg !cur_moves)
- } tenv f);
- { hint_eq_catalog = !cur_catalog;
- hint_eq_find_oracle= eq_find_oracle;
- hint_eq_rhs_oracle = rhs_find_oracle };;
+ } tenv f
+ with None -> failwith "CSE3analysisaux analysis failed, try re-running with -fno-cse3"
+ | Some invariants ->
+ invariants,
+ { hint_eq_catalog = !cur_catalog;
+ hint_eq_find_oracle= eq_find_oracle;
+ hint_eq_rhs_oracle = rhs_find_oracle };;