File: ssa-dataflow.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 (25 lines) | stat: -rw-r--r-- 909 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
(*
 * This is a generic module for performing (forward) dataflow 
 * analysis on the SSA graph.  Returns an array of dataflow values 
 * indexed by variables.
 * 
 * -- Allen (leunga@cs.nyu.edu)
 *)
signature SSA_DATAFLOW_ANALYSIS =
sig
   structure SSA : SSA

   val dataflowAnalysis : 
       { ssa      : SSA.ssa,              (* SSA graph *)
         bot      : 'D,                   (* bottom element *)
         top      : 'D,                   (* top element *)
         ==       : 'D * 'D -> bool,      (* equality *)
         const    : SSA.value -> 'D,      (* map constants to lattice value *)
         meet     : 'D list -> 'D,        (* meet *)
         transfer : {rtl:SSA.rtl,         (* transfer function *)
                     inputs:'D list, 
                     defs:SSA.value list
                    } -> 'D list
       } -> 'D Array.array     (* SSA variable -> dataflow value *)

end