| 1 | (* Copyright (C) 1999-2005 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 LIVE_STRUCTS = |
| 10 | sig |
| 11 | include RSSA |
| 12 | end |
| 13 | |
| 14 | signature LIVE = |
| 15 | sig |
| 16 | include LIVE_STRUCTS |
| 17 | |
| 18 | val live: |
| 19 | Function.t * {shouldConsider: Var.t -> bool} |
| 20 | -> {labelLive: |
| 21 | Label.t -> {(* live at beginning of block. *) |
| 22 | begin: Var.t vector, |
| 23 | (* live at the beginning of a block, except formals. *) |
| 24 | beginNoFormals: Var.t vector, |
| 25 | (* live handler slots at beginning of block. *) |
| 26 | handler: Label.t option, |
| 27 | link: bool}, |
| 28 | remLabelLive: Label.t -> unit} |
| 29 | end |