From 90375dc090b19cf8202903754d7f47e8d568d9f8 Mon Sep 17 00:00:00 2001 From: Pierre Goutagny Date: Mon, 14 Jun 2021 15:37:50 +0200 Subject: Add RTL Tunneling as a pass --- backend/RTLTunneling.v | 1 + backend/RTLTunnelingproof.v | 5 +++++ 2 files changed, 6 insertions(+) (limited to 'backend') 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. -- cgit