aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2022-06-30 23:44:30 +0100
committerYann Herklotz <git@yannherklotz.com>2022-06-30 23:44:30 +0100
commitb225aaebd29830ccf375d1427e14b72428b07598 (patch)
tree770719254559a413a2aab812a80c3848816189d6
parentded5a15a0ebcda4d11af32b3c4a46048b11e3c91 (diff)
downloadvericert-b225aaebd29830ccf375d1427e14b72428b07598.tar.gz
vericert-b225aaebd29830ccf375d1427e14b72428b07598.zip
Working on extending ifconversion proof
-rw-r--r--src/hls/IfConversion.v19
-rw-r--r--src/hls/IfConversionproof.v1
2 files changed, 20 insertions, 0 deletions
diff --git a/src/hls/IfConversion.v b/src/hls/IfConversion.v
index 0b1c852..ce6149b 100644
--- a/src/hls/IfConversion.v
+++ b/src/hls/IfConversion.v
@@ -230,6 +230,25 @@ Definition transf_function (f: function) : function :=
(if_convert_code f.(fn_code) iflist)
f.(fn_entrypoint).
+Section TRANSF_PROGRAM.
+
+Variable A B V: Type.
+Variable transf: ident -> A -> B.
+
+Definition transform_program_globdef (idg: ident * globdef A V) : ident * globdef B V :=
+ match idg with
+ | (id, Gfun f) => (id, Gfun (transf id f))
+ | (id, Gvar v) => (id, Gvar v)
+ end.
+
+Definition transform_program (p: AST.program A V) : AST.program B V :=
+ mkprogram
+ (List.map transform_program_globdef p.(prog_defs))
+ p.(prog_public)
+ p.(prog_main).
+
+End TRANSF_PROGRAM.
+
Definition transf_fundef (fd: fundef) : fundef :=
transf_fundef transf_function fd.
diff --git a/src/hls/IfConversionproof.v b/src/hls/IfConversionproof.v
index 39ec046..d2268fd 100644
--- a/src/hls/IfConversionproof.v
+++ b/src/hls/IfConversionproof.v
@@ -32,6 +32,7 @@ Require Import compcert.common.Smallstep.
Require Import compcert.common.Events.
Require Import compcert.common.Memory.
Require Import compcert.common.Values.
+Require Import compcert.common.Linking.
Require Import vericert.common.Vericertlib.
Require Import vericert.common.DecEq.