Home My Page Projects Code Snippets Project Openings SML/NJ
 Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

# SCM Repository

[smlnj] View of /MLRISC/releases/release-110.69/ir-archive/fast-path.sml
 [smlnj] / MLRISC / releases / release-110.69 / ir-archive / fast-path.sml

# View of /MLRISC/releases/release-110.69/ir-archive/fast-path.sml

Wed Dec 31 02:32:14 2008 UTC (10 years, 9 months ago) by jriehl
File size: 969 byte(s)
`Release 110.69`
```(*
* This module implements Tarjan's fast path computation algorithm.
*
* -- Allen
*)

functor TarjanFastPath(Dom : DOMINATOR_TREE) : TARJAN_FAST_PATH =
struct

structure Dom = Dom
structure G   = Graph
structure A   = Array

datatype 'e pexp =
NULLSET
|  LAMBDA
|  EDGE of 'e Graph.edge
|  || of 'e pexp * 'e pexp
|  ++ of 'e pexp * 'e pexp

type 'e pseq = ('e pexp * int * int) list

infix || ++

fun simp (NUL || x) = x
| simp (x || NUL) = x
| simp (NUL ++ x) = NUL
| simp (x ++ NUL) = NUL
| simp (EMP ++ x) = x
| simp x = x

fun solve P s =

fun decompose_and_sequence (G as G.GRAPH G,Dom as G.GRAPH dom) =
let val N        = #capacity dom ()
val ancestor = A.array(N,~1)
val derived  = A.array(N,~1)
val S        = A.array(N,LAMBDA)
val R        = A.array(N,NULLSET)
fun eliminate (G.GRAPH G) =

fun walk(u,lvl,sequence) =
in
end

end
```

 root@smlnj-gforge.cs.uchicago.edu ViewVC Help Powered by ViewVC 1.0.0