aboutsummaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorPierre Goutagny <pierre.goutagny@ens-lyon.fr>2021-06-14 15:37:50 +0200
committerPierre Goutagny <pierre.goutagny@ens-lyon.fr>2021-06-14 15:37:50 +0200
commit90375dc090b19cf8202903754d7f47e8d568d9f8 (patch)
tree0b98a0fa4c4588cd8a787d70f45b0468798beaf8 /backend
parent77d1ab5f7a6d04970185102508f1cec529c7cb40 (diff)
downloadcompcert-kvx-90375dc090b19cf8202903754d7f47e8d568d9f8.tar.gz
compcert-kvx-90375dc090b19cf8202903754d7f47e8d568d9f8.zip
Add RTL Tunneling as a pass
Diffstat (limited to 'backend')
-rw-r--r--backend/RTLTunneling.v1
-rw-r--r--backend/RTLTunnelingproof.v5
2 files changed, 6 insertions, 0 deletions
diff --git a/backend/RTLTunneling.v b/backend/RTLTunneling.v
index e6901a9f..049160fd 100644
--- a/backend/RTLTunneling.v
+++ b/backend/RTLTunneling.v
@@ -25,6 +25,7 @@ Definition UF := PTree.t (node * Z).
(* The oracle returns a map of "nop" node to their target with a distance (ie the number of the "nop" node on the path) to the target. *)
Axiom branch_target: RTL.function -> UF.
+Extract Constant branch_target => "RTLTunnelingaux.branch_target".
(* TODO: add an extraction command to link branch_target with its implementation *)
Local Open Scope error_monad_scope.
diff --git a/backend/RTLTunnelingproof.v b/backend/RTLTunnelingproof.v
index 7f6696ad..14a2c037 100644
--- a/backend/RTLTunnelingproof.v
+++ b/backend/RTLTunnelingproof.v
@@ -149,6 +149,11 @@ Definition match_prog (p tp: program) :=
* `p` et `tp` sont les programmes donc on doit dire s'ils match
*)
+ (**) Lemma transf_program_match:
+ forall prog tprog, transf_program prog = OK tprog -> match_prog prog tprog.
+Proof.
+ intros. eapply match_transform_partial_program_contextual; eauto.
+Qed.
Section PRESERVATION.