File: gc-gen.sig

package info (click to toggle)
mlton 20210117%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,464 kB
  • sloc: ansic: 27,682; sh: 4,455; asm: 3,569; lisp: 2,879; makefile: 2,347; perl: 1,169; python: 191; pascal: 68; javascript: 7
file content (23 lines) | stat: -rw-r--r-- 1,070 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(*
 * This module is reponsible for generating garbage collection 
 * code for all gc-points in the program.  That is, we delay the generation
 * of garbage collection code until all optimizations have been performed.
 * A callback is invoked at all GC safe-points with the appropriate type 
 * information.  The callback is responsible for generating the appropriate
 * code to save and restore all roots and call the garbage collector.
 *)
signature GC_CALLBACK =
sig
   structure C  : CELLS
   structure GC : GC_TYPE
   structure T  : MLTREE
   val callgcCallback :  
        { id          : int,                        (* basic block id *)
          msg         : string,                     (* some auxiliary text *)
          gcLabel     : Label.label,                (* label of gc block *)
          returnLabel : Label.label,                (* label of return block *)
          roots       : (C.cell * GC.gctype) list,  (* root set *)
          stream      : (T.stm,T.mlrisc list) T.stream 
                          (* code generator *)
        } -> unit
end