Import Upstream version 20180207
[hcoop/debian/mlton.git] / mlton / backend / chunkify.sig
1 (* Copyright (C) 2009 Matthew Fluet.
2 * Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 * Copyright (C) 1997-2000 NEC Research Institute.
5 *
6 * MLton is released under a BSD-style license.
7 * See the file MLton-LICENSE for details.
8 *)
9
10 signature CHUNKIFY_STRUCTS =
11 sig
12 include RSSA
13 end
14
15 signature CHUNKIFY =
16 sig
17 include CHUNKIFY_STRUCTS
18
19 (* Partitions all the labels declared into disjoint sets, referred
20 * to as chunks. Returns the list of chunks.
21 * All funcs, conts, and handlers are assumed to be entry points.
22 * All conts and handlers are assumed to be return points.
23 *)
24 val chunkify: Program.t -> {
25 funcs: Func.t vector,
26 labels: Label.t vector
27 } vector
28 end