SCM Repository
[smlnj] Diff of /sml/branches/SMLNJ/src/compiler/FLINT/cps/cpstrans.sml
Diff of /sml/branches/SMLNJ/src/compiler/FLINT/cps/cpstrans.sml
Parent Directory
|
Revision Log
|
Patch
154 |
| _ => let val v = mkv() |
| _ => let val v = mkv() |
155 |
val u = VAR v |
val u = VAR v |
156 |
fun g (sv, (i,hdr)) = |
fun g (sv, (i,hdr)) = |
157 |
(i+1, fn e => SELECT(i, u, sv, FLTt, hdr e)) |
(i+1, fn e => hdr(SELECT(i, u, sv, FLTt, e))) |
158 |
val (n,fh) = foldr g (0, ident) spfvars |
val (n,fh) = foldl g (0, ident) spfvars |
159 |
val ct = PTRt(FPT n) |
val ct = PTRt(FPT n) |
160 |
in (SOME v, fh, v::spgvars, ct::spgctys) |
in (SOME v, fh, v::spgvars, ct::spgctys) |
161 |
end |
end |
166 |
| _ => let val v = mkv() |
| _ => let val v = mkv() |
167 |
val u = VAR v |
val u = VAR v |
168 |
fun g (sv, (i,hdr)) = |
fun g (sv, (i,hdr)) = |
169 |
(i+1, fn e => SELECT(i, u, sv, FLTt, hdr e)) |
(i+1, fn e =>hdr(SELECT(i, u, sv, FLTt, e))) |
170 |
val (n, gh) = foldr g (0, fhdr) spgvars |
val (n, gh) = foldl g (0, fhdr) spgvars |
171 |
val ct = PTRt(RPT n) |
val ct = PTRt(RPT n) |
172 |
in (SOME (v, ct), gh) |
in (SOME (v, ct), gh) |
173 |
end |
end |
|
Legend:
Removed from v.124 |
|
changed lines |
|
Added in v.125 |
|
|