Import Upstream version 20180207
[hcoop/debian/mlton.git] / mlton / codegen / x86-codegen / x86-live-transfers.sig
1 (* Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9 signature X86_LIVE_TRANSFERS_STRUCTS =
10 sig
11 structure x86 : X86
12 structure x86Liveness : X86_LIVENESS
13 sharing x86 = x86Liveness.x86
14 structure x86JumpInfo : X86_JUMP_INFO
15 sharing x86 = x86JumpInfo.x86
16 structure x86LoopInfo : X86_LOOP_INFO
17 sharing x86 = x86LoopInfo.x86
18 end
19
20 signature X86_LIVE_TRANSFERS =
21 sig
22 include X86_LIVE_TRANSFERS_STRUCTS
23
24 type t
25
26 val computeLiveTransfers : {chunk : x86.Chunk.t,
27 transferRegs : x86.Entry.t -> x86.Register.t list,
28 transferFltRegs : x86.Entry.t -> Int.t,
29 liveInfo : x86Liveness.LiveInfo.t,
30 jumpInfo : x86JumpInfo.t,
31 loopInfo : x86LoopInfo.t} -> t
32 val computeLiveTransfers_totals : unit -> unit
33
34 val getLiveTransfers : t * x86.Label.t ->
35 ((x86.MemLoc.t * x86.Register.t * bool) list *
36 (x86.MemLoc.t * bool) list)
37 val setLiveTransfersEmpty : t * x86.Label.t -> unit
38 end