aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Duplicate.v
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2020-10-27 12:07:49 +0100
committerCyril SIX <cyril.six@kalray.eu>2020-10-27 14:24:42 +0100
commit50ea7732118611a38e6aa6bced5c60dffb4eea3a (patch)
treedd6f8aa1787415b69d98d1a55756a7013ee1a0d3 /backend/Duplicate.v
parent3f99a42035389b1953030af8490a5ec18a64394f (diff)
downloadcompcert-kvx-50ea7732118611a38e6aa6bced5c60dffb4eea3a.tar.gz
compcert-kvx-50ea7732118611a38e6aa6bced5c60dffb4eea3a.zip
Reworked Duplicate to be parametrized
Diffstat (limited to 'backend/Duplicate.v')
-rw-r--r--backend/Duplicate.v26
1 files changed, 21 insertions, 5 deletions
diff --git a/backend/Duplicate.v b/backend/Duplicate.v
index 0e04b07d..6ae5475d 100644
--- a/backend/Duplicate.v
+++ b/backend/Duplicate.v
@@ -18,14 +18,28 @@
Require Import AST RTL Maps Globalenvs.
Require Import Coqlib Errors Op.
-Local Open Scope error_monad_scope.
-Local Open Scope positive_scope.
-(** External oracle returning the new RTL code (entry point unchanged),
+
+Module Type DuplicateParam.
+
+ (** External oracle returning the new RTL code (entry point unchanged),
along with the new entrypoint, and a mapping of new nodes to old nodes *)
-Axiom duplicate_aux: function -> code * node * (PTree.t node).
+ Parameter duplicate_aux: function -> code * node * (PTree.t node).
+
+End DuplicateParam.
+
+
-Extract Constant duplicate_aux => "Duplicateaux.duplicate_aux".
+Module Duplicate (D: DuplicateParam).
+
+Export D.
+
+Definition duplicate_aux := duplicate_aux.
+
+(* Extract Constant duplicate_aux => "Duplicateaux.duplicate_aux". *)
+
+Local Open Scope error_monad_scope.
+Local Open Scope positive_scope.
(** * Verification of node duplications *)
@@ -215,3 +229,5 @@ Definition transf_fundef (f: fundef) : res fundef :=
Definition transf_program (p: program) : res program :=
transform_partial_program transf_fundef p.
+
+End Duplicate.