aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Asmgenproof.v
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-03 18:10:54 +0100
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-03 18:10:54 +0100
commitcdb54160ff67bef3ab40e3cc85416f2c897ac82b (patch)
tree1eb072dbdc2125d817f8a11f49170db45e9a6cd8 /aarch64/Asmgenproof.v
parent72a7d353cb1101a8bfcbbb3836814fe2f55a8b01 (diff)
downloadcompcert-kvx-cdb54160ff67bef3ab40e3cc85416f2c897ac82b.tar.gz
compcert-kvx-cdb54160ff67bef3ab40e3cc85416f2c897ac82b.zip
Dumb (identity) scheduling working and integrated
Diffstat (limited to 'aarch64/Asmgenproof.v')
-rw-r--r--aarch64/Asmgenproof.v18
1 files changed, 11 insertions, 7 deletions
diff --git a/aarch64/Asmgenproof.v b/aarch64/Asmgenproof.v
index 62b65a14..d062654b 100644
--- a/aarch64/Asmgenproof.v
+++ b/aarch64/Asmgenproof.v
@@ -18,7 +18,7 @@
Require Import Coqlib Errors.
Require Import Integers Floats AST Linking.
Require Import Values Memory Events Globalenvs Smallstep.
-Require Import Op Locations Machblock Conventions PseudoAsmblock Asm Asmblock.
+Require Import Op Locations Machblock Conventions PseudoAsmblock PseudoAsmblockproof Asm Asmblock.
Require Machblockgenproof Asmblockgenproof PostpassSchedulingproof.
Require Import Asmgen.
Require Import Axioms.
@@ -2321,7 +2321,7 @@ Definition block_passes :=
mkpass Machblockgenproof.match_prog
::: mkpass PseudoAsmblockproof.match_prog
::: mkpass Asmblockgenproof.match_prog
- (*::: mkpass PostpassSchedulingproof.match_prog*)
+ ::: mkpass PostpassSchedulingproof.match_prog
::: mkpass Asmblock_PRESERVATION.match_prog
::: pass_nil _.
@@ -2333,11 +2333,13 @@ Proof.
intros p tp H.
unfold Asmgen.transf_program in H. apply bind_inversion in H. destruct H.
inversion_clear H. apply bind_inversion in H1. destruct H1.
- inversion_clear H. inversion H2. remember (Machblockgen.transf_program p) as mbp.
+ inversion_clear H. apply bind_inversion in H2. destruct H2. inversion_clear H.
+ unfold Compopts.time in *. remember (Machblockgen.transf_program p) as mbp.
unfold match_prog; simpl.
exists mbp; split. apply Machblockgenproof.transf_program_match; auto.
exists x; split. apply PseudoAsmblockproof.transf_program_match; auto.
exists x0; split. apply Asmblockgenproof.transf_program_match; auto.
+ exists x1; split. apply PostpassSchedulingproof.transf_program_match; auto.
exists tp; split. apply Asmblock_PRESERVATION.transf_program_match; auto. auto.
Qed.
@@ -2364,19 +2366,21 @@ Let tge := Genv.globalenv tprog.
Theorem transf_program_correct:
forward_simulation (Mach.semantics return_address_offset prog) (Asm.semantics tprog).
Proof.
+Admitted.
+(* TODO
unfold match_prog in TRANSF. simpl in TRANSF.
- inv TRANSF. inv H. inv H1. inv H. inv H2. inv H. inv H3. inv H.
+ inv TRANSF. inv H. inv H1. inv H. inv H2. inv H. inv H3. inv H. inv H4. inv H.
eapply compose_forward_simulations.
{ exploit Machblockgenproof.transf_program_correct; eauto. }
eapply compose_forward_simulations.
+ apply PseudoAsmblockproof.transf_program_correct; eauto.
- intros; apply Asmblockgenproof.next_progress.
- - intros; eapply Asmblockgenproof.functions_bound_max_pos; eauto.
- { intros; eapply Asmblock_PRESERVATION.symbol_high_low; eauto. }
+ - intros. eapply .functions_bound_max_pos; eauto.
+ { intros. eapply Asmblock_PRESERVATION.symbol_high_low. eauto. }
+ eapply compose_forward_simulations. apply Asmblockgenproof.transf_program_correct; eauto.
{ intros; eapply Asmblock_PRESERVATION.symbol_high_low; eauto. }
apply Asmblock_PRESERVATION.transf_program_correct. eauto.
-Qed.
+Qed.*)
End PRESERVATION.