aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/RTLtoBTL.v
diff options
context:
space:
mode:
authorSylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr>2021-05-06 09:07:07 +0200
committerSylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr>2021-05-06 09:07:07 +0200
commitc7bc74b1860f30df678bf384a32cd9c6eb113beb (patch)
treefa69acaa1a5aff1dbb5fc11895b244294b9b6753 /scheduling/RTLtoBTL.v
parent7473fed7c8e1b2fdef276b7aa754fb00792d47ca (diff)
downloadcompcert-kvx-c7bc74b1860f30df678bf384a32cd9c6eb113beb.tar.gz
compcert-kvx-c7bc74b1860f30df678bf384a32cd9c6eb113beb.zip
start RTL -> BTL
Diffstat (limited to 'scheduling/RTLtoBTL.v')
-rw-r--r--scheduling/RTLtoBTL.v23
1 files changed, 23 insertions, 0 deletions
diff --git a/scheduling/RTLtoBTL.v b/scheduling/RTLtoBTL.v
new file mode 100644
index 00000000..14aecb21
--- /dev/null
+++ b/scheduling/RTLtoBTL.v
@@ -0,0 +1,23 @@
+Require Import Coqlib Maps.
+Require Import AST Integers Values Events Memory Globalenvs Smallstep.
+Require Import RTL Op Registers OptionMonad BTL.
+
+Require Import Errors Linking.
+
+(** External oracle *)
+Parameter rtl2btl: RTL.function -> BTL.code * node * (PTree.t node).
+
+Local Open Scope error_monad_scope.
+
+Definition transf_function (f: RTL.function) : res BTL.function :=
+ let (tcte, dupmap) := rtl2btl f in
+ let (tc, te) := tcte in
+ let f' := BTL.mkfunction (RTL.fn_sig f) (RTL.fn_params f) (RTL.fn_stacksize f) (right_assoc_code tc) te in
+ do u <- verify_function dupmap f' f;
+ OK f'.
+
+Definition transf_fundef (f: RTL.fundef) : res fundef :=
+ transf_partial_fundef transf_function f.
+
+Definition transf_program (p: RTL.program) : res program :=
+ transform_partial_program transf_fundef p.