1 (* Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
9 signature AMD64_LIVE_TRANSFERS_STRUCTS =
11 structure amd64 : AMD64
12 structure amd64Liveness : AMD64_LIVENESS
13 sharing amd64 = amd64Liveness.amd64
14 structure amd64JumpInfo : AMD64_JUMP_INFO
15 sharing amd64 = amd64JumpInfo.amd64
16 structure amd64LoopInfo : AMD64_LOOP_INFO
17 sharing amd64 = amd64LoopInfo.amd64
20 signature AMD64_LIVE_TRANSFERS =
22 include AMD64_LIVE_TRANSFERS_STRUCTS
26 val computeLiveTransfers : {chunk : amd64.Chunk.t,
27 transferRegs : amd64.Entry.t -> amd64.Register.t list,
28 transferXmmRegs : amd64.Entry.t -> amd64.XmmRegister.t list,
29 liveInfo : amd64Liveness.LiveInfo.t,
30 jumpInfo : amd64JumpInfo.t,
31 loopInfo : amd64LoopInfo.t} -> t
32 val computeLiveTransfers_totals : unit -> unit
34 val getLiveTransfers : t * amd64.Label.t ->
35 ((amd64.MemLoc.t * amd64.Register.t * bool) list *
36 (amd64.MemLoc.t * amd64.XmmRegister.t * bool) list)
37 val setLiveTransfersEmpty : t * amd64.Label.t -> unit