File: mlrisc-idefs.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 (30 lines) | stat: -rw-r--r-- 812 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
24
25
26
27
28
29
30
(*
 * This is Reif and Tarjan's algorithm (SIAM J Computing 1981) 
 * for computing approximate birthpoints for expressions.   
 * For each basic block B,
 *   idef(B) = { v | v is defined on some path between B's idom and B }
 *
 * -- Allen
 *)
signature MLRISC_IDEFS =
sig

   structure Dom : DOMINATOR_TREE
   structure CFG : CONTROL_FLOW_GRAPH
   structure I   : INSTRUCTIONS
   structure C   : CELLS
      sharing CFG.I = I
      sharing C     = I.C

   val idefs : 
       (I.instruction -> C.cell list * C.cell list) ->
       CFG.cfg ->
       { idefuse     : unit -> 
           (C.SortedCells.sorted_cells * 
            C.SortedCells.sorted_cells) Array.array,
         ipostdefuse : unit -> 
           (C.SortedCells.sorted_cells * 
            C.SortedCells.sorted_cells) Array.array
       }
end