aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c
diff options
context:
space:
mode:
authorSylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr>2018-09-25 10:14:54 +0200
committerSylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr>2018-09-25 10:14:54 +0200
commit5b1c4771836a246e75eec07ccb1b72c83841baab (patch)
tree696938647e2ebbe712d20551e46f053c471b0471 /mppa_k1c
parentffaf5a655456e045f116fcd6b52e4faae9c8a7d4 (diff)
downloadcompcert-kvx-5b1c4771836a246e75eec07ccb1b72c83841baab.tar.gz
compcert-kvx-5b1c4771836a246e75eec07ccb1b72c83841baab.zip
add an example on depfree
Diffstat (limited to 'mppa_k1c')
-rw-r--r--mppa_k1c/Asmbundle.v20
1 files changed, 19 insertions, 1 deletions
diff --git a/mppa_k1c/Asmbundle.v b/mppa_k1c/Asmbundle.v
index b5f92c2a..bd531930 100644
--- a/mppa_k1c/Asmbundle.v
+++ b/mppa_k1c/Asmbundle.v
@@ -228,11 +228,29 @@ Inductive depfreex : list breg -> list instruction -> Prop :=
| depfreex_nil : forall lw, depfreex lw nil
| depfreex_cons : forall i lri lwi lw l,
lri = readregs i -> lwi = writeregs i ->
- disjoint (lri++lwi) lw -> (* Checking for WAW + RAW *)
+ disjoint_x lri lw -> (* Checking for RAW *)
+ disjoint_x lwi lw -> (* Checking for WAW *)
depfreex (lw++lwi) l ->
depfreex lw (i::l)
.
+Import ListNotations.
+
+Open Scope list_scope.
+
+Local Hint Resolve depfreex_nil depfreex_cons.
+
+Example depfreex_2 i1 i2 lw1 lr2 lw2:
+ lw1 = writeregs i1 ->
+ lr2 = readregs i2 ->
+ lw2 = writeregs i2 ->
+ disjoint_x lr2 lw1 -> (* RAW *)
+ disjoint_x lw2 lw1 -> (* WAW *)
+ depfreex [] [i1;i2].
+Proof.
+ intros; eapply depfreex_cons; eauto;
+ unfold disjoint_x; simpl; intuition.
+Qed.
(* FIXME: STUB *)
Definition is_bundle (b:bblock):=True.