aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/BTLcommonaux.ml
diff options
context:
space:
mode:
Diffstat (limited to 'scheduling/BTLcommonaux.ml')
-rw-r--r--scheduling/BTLcommonaux.ml23
1 files changed, 20 insertions, 3 deletions
diff --git a/scheduling/BTLcommonaux.ml b/scheduling/BTLcommonaux.ml
index 4605d613..577e4828 100644
--- a/scheduling/BTLcommonaux.ml
+++ b/scheduling/BTLcommonaux.ml
@@ -1,15 +1,22 @@
open Maps
open BTL
+open Registers
open BTLtypes
open RTLcommonaux
let undef_node = -1
-let mk_iinfo _inumb _pcond = { inumb = _inumb; pcond = _pcond; visited = false }
+let mk_iinfo _inumb _pcond = { inumb = _inumb; pcond = _pcond; visited = false; liveins = Regset.empty }
-let def_iinfo () = { inumb = undef_node; pcond = None; visited = false }
+let def_iinfo () = { inumb = undef_node; pcond = None; visited = false; liveins = Regset.empty }
-let mk_binfo _bnumb = { bnumb = _bnumb; visited = false }
+let mk_binfo _bnumb _s_output_regs _typing =
+ {
+ bnumb = _bnumb;
+ visited = false;
+ s_output_regs = _s_output_regs;
+ typing = _typing;
+ }
let reset_visited_ibf btl =
PTree.map
@@ -68,3 +75,13 @@ let rec get_inumb_or_next = function
iinfo.inumb
| Bseq (ib1, _) -> get_inumb_or_next ib1
| _ -> failwith "get_inumb_or_next: Bnop None"
+
+let get_liveins = function
+ | BF (_, iinfo)
+ | Bnop (Some iinfo)
+ | Bop (_, _, _, iinfo)
+ | Bload (_, _, _, _, _, iinfo)
+ | Bstore (_, _, _, _, iinfo)
+ | Bcond (_, _, _, _, iinfo) ->
+ iinfo.liveins
+ | _ -> failwith "get_liveins: invalid iblock"