aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Asmblockdeps.v
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2019-07-30 16:46:16 +0200
committerCyril SIX <cyril.six@kalray.eu>2019-07-30 16:46:16 +0200
commitce33586e40bf7be637b932d363275b9d5761a3a0 (patch)
tree943b85a5e32a01c0a38dac004d3f0e4e977030e7 /mppa_k1c/Asmblockdeps.v
parent5b4560bd853cbcf1ef195da1b625f37609ec00ec (diff)
downloadcompcert-kvx-ce33586e40bf7be637b932d363275b9d5761a3a0.tar.gz
compcert-kvx-ce33586e40bf7be637b932d363275b9d5761a3a0.zip
(#156) - Un peu de cleaning et de doc
Diffstat (limited to 'mppa_k1c/Asmblockdeps.v')
-rw-r--r--mppa_k1c/Asmblockdeps.v35
1 files changed, 15 insertions, 20 deletions
diff --git a/mppa_k1c/Asmblockdeps.v b/mppa_k1c/Asmblockdeps.v
index a7fa5cff..2d144bb6 100644
--- a/mppa_k1c/Asmblockdeps.v
+++ b/mppa_k1c/Asmblockdeps.v
@@ -1,3 +1,10 @@
+(** * Translation from Asmblock to AbstractBB
+
+ We define a specific instance of AbstractBB, named L, translate bblocks from Asmblock into this instance
+ AbstractBB will then define two semantics for L : a sequential, and a semantic one
+ We prove a bisimulation between the parallel semantics of L and AsmVLIW
+ From this, we also deduce a bisimulation between the sequential semantics of L and Asmblock *)
+
Require Import AST.
Require Import Asmblock.
Require Import Asmblockgenproof0.
@@ -17,6 +24,8 @@ Require Import Chunks.
Open Scope impure.
+(** Definition of L *)
+
Module P<: ImpParam.
Module R := Pos.
@@ -459,18 +468,6 @@ Qed.
Hint Resolve op_eq_correct: wlp.
Global Opaque op_eq_correct.
-
-(* QUICK FIX WITH struct_eq *)
-
-(* Definition op_eq (o1 o2: op): ?? bool := struct_eq o1 o2.
-
-Theorem op_eq_correct o1 o2:
- WHEN op_eq o1 o2 ~> b THEN b=true -> o1 = o2.
-Proof.
- wlp_simplify.
-Qed.
-*)
-
End IMPPARAM.
End P.
@@ -550,7 +547,7 @@ Proof.
- unfold ppos. unfold pmem. discriminate.
Qed.
-(** Inversion functions, used for debugging *)
+(** Inversion functions, used for debug traces *)
Definition pos_to_ireg (p: R.t) : option gpreg :=
match p with
@@ -574,9 +571,6 @@ Definition inv_ppos (p: R.t) : option preg :=
end
end.
-
-(** Traduction Asmblock -> Asmblockdeps *)
-
Notation "a @ b" := (Econs a b) (at level 102, right associativity).
Definition trans_control (ctl: control) : inst :=
@@ -720,7 +714,7 @@ Proof.
intros. congruence.
Qed.
-(** Parallelizability of a bblock (bundle) *)
+(** Parallelizability test of a bblock (bundle), and bisimulation of the Asmblock and L parallel semantics *)
Module PChk := ParallelChecks L PosPseudoRegSet.
@@ -1162,7 +1156,7 @@ Proof.
destruct (prun_iw _ _ _ _); simpl; eauto.
Qed.
-(* sequential execution *)
+(** sequential execution *)
Theorem bisimu_basic ge fn bi rs m s:
Ge = Genv ge fn ->
match_states (State rs m) s ->
@@ -1264,7 +1258,6 @@ Qed.
End SECT_PAR.
-
Section SECT_BBLOCK_EQUIV.
Variable Ge: genv.
@@ -1294,6 +1287,8 @@ Proof.
* discriminate.
Qed.
+(** Used for debug traces *)
+
Definition gpreg_name (gpr: gpreg) :=
match gpr with
| GPR0 => Str ("GPR0") | GPR1 => Str ("GPR1") | GPR2 => Str ("GPR2") | GPR3 => Str ("GPR3") | GPR4 => Str ("GPR4")
@@ -1645,4 +1640,4 @@ Definition bblock_simub: Asmvliw.bblock -> Asmvliw.bblock -> bool := pure_bblock
Lemma bblock_simub_correct p1 p2 ge fn: bblock_simub p1 p2 = true -> Asmblockgenproof0.bblock_simu ge fn p1 p2.
Proof.
eapply (pure_bblock_simu_test_correct true).
-Qed. \ No newline at end of file
+Qed.