aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/RTLtoBTL.v
blob: 3617e69190877ce23044cf4ca676f3081222faf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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) (expand_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.