aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Allocproof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-06 22:33:46 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-06 22:33:46 +0200
commite64b9464fb6662bf63ac255eca94d17d572c9d81 (patch)
tree517819d4f4e29fbd3a68d6431dd471baf0d427b0 /backend/Allocproof.v
parent8e03466a1a2e7bbc9057ac76ee18deda990dc884 (diff)
downloadcompcert-kvx-e64b9464fb6662bf63ac255eca94d17d572c9d81.tar.gz
compcert-kvx-e64b9464fb6662bf63ac255eca94d17d572c9d81.zip
ONE "admitted" and things compile
Diffstat (limited to 'backend/Allocproof.v')
-rw-r--r--backend/Allocproof.v37
1 files changed, 34 insertions, 3 deletions
diff --git a/backend/Allocproof.v b/backend/Allocproof.v
index 44dda4ac..ab6f87b0 100644
--- a/backend/Allocproof.v
+++ b/backend/Allocproof.v
@@ -2229,7 +2229,7 @@ Proof.
econstructor; eauto.
eapply wt_exec_Iload; eauto.
-- (* BSload notrap1 *)
+- (* load notrap1 *)
generalize (wt_exec_Iload_notrap _ _ _ _ _ _ _ _ WTI WTRS).
intro WTRS'.
exploit (exec_moves mv1); eauto. intros [ls1 [A1 B1]].
@@ -2247,7 +2247,7 @@ Proof.
exploit satisf_successors; eauto. simpl; eauto. intros [enext [U V]].
econstructor; eauto.
-(* BSload notrap dead? *)
+(* load notrap1 dead *)
- exploit exec_moves; eauto. intros [ls1 [X Y]].
econstructor; split.
eapply plus_left. econstructor; eauto.
@@ -2259,7 +2259,38 @@ Proof.
econstructor; eauto.
eapply wt_exec_Iload_notrap; eauto.
+(* load regular notrap2 *)
+- (* exploit (exec_moves mv1); eauto. intros [ls1 [A1 B1]].
+ exploit transfer_use_def_satisf; eauto. intros [X Y].
+ exploit eval_addressing_lessdef; eauto. intros [a' [F G]].
+
+ econstructor; split.
+ eapply plus_left. econstructor; eauto.
+ eapply star_trans. eexact A1.
+ eapply star_left. eapply exec_Lload_notrap2 with (a := a'). rewrite <- F.
+ apply eval_addressing_preserved. exact symbols_preserved. eauto. eauto.
+ eapply star_right. eexact A2. constructor.
+ eauto. eauto. eauto. traceEq.
+ exploit satisf_successors; eauto. simpl; eauto. intros [enext [U V]].
+ econstructor; eauto.
+
+ generalize (wt_exec_Iload_notrap _ _ _ _ _ _ _ _ WTI WTRS). intro WTRS'.
+ *)
+
+ admit.
+- (* load notrap2 dead *)
+ exploit exec_moves; eauto. intros [ls1 [X Y]].
+ econstructor; split.
+ eapply plus_left. econstructor; eauto.
+ eapply star_right. eexact X. econstructor; eauto.
+ eauto. traceEq.
+ exploit satisf_successors. eauto. eauto. simpl; eauto. eauto.
+ eapply reg_unconstrained_satisf; eauto.
+ intros [enext [U V]].
+ econstructor; eauto.
+ eapply wt_exec_Iload_notrap; eauto.
+
(* store *)
- exploit exec_moves; eauto. intros [ls1 [X Y]].
exploit add_equations_lessdef; eauto. intros LD. simpl in LD. inv LD.
@@ -2511,7 +2542,7 @@ Proof.
eapply plus_left. constructor. eexact A. traceEq.
econstructor; eauto.
apply wt_regset_assign; auto. rewrite WTRES0; auto.
-Qed.
+Admitted.
Lemma initial_states_simulation:
forall st1, RTL.initial_state prog st1 ->