aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-17 16:11:43 +0100
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-17 16:11:43 +0100
commitfa0c79015c3ecd2ad63dbf1b50f60039cf043151 (patch)
tree93a34c8602948adb99462f7a971283df32796dc5
parent376315dae506e496d1613934ea6e0e9d056c6526 (diff)
downloadcompcert-kvx-fa0c79015c3ecd2ad63dbf1b50f60039cf043151.tar.gz
compcert-kvx-fa0c79015c3ecd2ad63dbf1b50f60039cf043151.zip
Builtin mem spec in scheduler and some needed proof in Postpasssch.v
-rw-r--r--aarch64/Asmblockdeps.v4
-rw-r--r--aarch64/PostpassScheduling.v5
-rw-r--r--aarch64/PostpassSchedulingOracle.ml2
3 files changed, 6 insertions, 5 deletions
diff --git a/aarch64/Asmblockdeps.v b/aarch64/Asmblockdeps.v
index 25b9c5c5..4297cfd8 100644
--- a/aarch64/Asmblockdeps.v
+++ b/aarch64/Asmblockdeps.v
@@ -1088,7 +1088,7 @@ Definition trans_control (ctl: control) : inst :=
(#PC, Op (Control (Obtbl tbl)) (PReg(#r) @ PReg(#PC) @ Enil));
(#X16, Op (Constant Vundef) Enil);
(#X17, Op (Constant Vundef) Enil)]
- | Pbuiltin ef args res => [(#PC, Op (Control (OError)) Enil)]
+ | Pbuiltin ef args res => []
end.
Definition trans_exit (ex: option control) : L.inst :=
@@ -2637,7 +2637,7 @@ End SECT_BBLOCK_EQUIV.
(** REWRITE RULES *)
Definition is_constant (o: op): bool :=
- match o with
+ match o with (* TODO *)
| OArithP _ | OArithRR0_XZR _ _ | Ofmovi_XZR _ => true
| _ => false
end.
diff --git a/aarch64/PostpassScheduling.v b/aarch64/PostpassScheduling.v
index c84b327b..a9473789 100644
--- a/aarch64/PostpassScheduling.v
+++ b/aarch64/PostpassScheduling.v
@@ -336,8 +336,9 @@ Program Definition schedule_to_bblock (lb: list basic) (oc: option control) : re
| Some c => OK {| header := nil; body := lb; exit := Some c |}
end.
Next Obligation.
- (* TODO *)
-Admitted.
+ unfold Is_true, AB.non_empty_bblockb.
+ unfold AB.non_empty_exit. rewrite orb_true_r. reflexivity.
+Qed.
Definition do_schedule (bb: bblock) : res bblock :=
if (Z.eqb (size bb) 1) then OK (bb)
diff --git a/aarch64/PostpassSchedulingOracle.ml b/aarch64/PostpassSchedulingOracle.ml
index 886519b2..821a1d53 100644
--- a/aarch64/PostpassSchedulingOracle.ml
+++ b/aarch64/PostpassSchedulingOracle.ml
@@ -462,7 +462,7 @@ let builtin_rec ef args res =
(* XXX verify this *)
{
inst = builtin_real;
- write_locs = [];
+ write_locs = [ Mem ];
read_locs = [ Mem ];
is_control = true;
}