SCM Repository
[diderot] Diff of /branches/pure-cfg/src/compiler/IL/translate-fn.sml
Diff of /branches/pure-cfg/src/compiler/IL/translate-fn.sml
Parent Directory
|
Revision Log
|
Patch
103 |
| SrcIL.ASSIGN{stm, succ, ...} => let |
| SrcIL.ASSIGN{stm, succ, ...} => let |
104 |
val DstIL.CFG{entry, exit} = expand (env, stm) |
val DstIL.CFG{entry, exit} = expand (env, stm) |
105 |
in |
in |
106 |
DstNd.addEdge (!exit, trans (!succ)); |
DstNd.addEdge (exit, trans (!succ)); |
107 |
!entry |
entry |
108 |
end |
end |
109 |
| SrcIL.NEW{strand, args, succ, ...} => let |
| SrcIL.NEW{strand, args, succ, ...} => let |
110 |
val nd = newNd (DstNd.mkNEW{ |
val nd = newNd (DstNd.mkNEW{ |
121 |
(* end case *)) |
(* end case *)) |
122 |
(* end case *) |
(* end case *) |
123 |
end |
end |
124 |
val entry = trans (!entry) |
val entry = trans entry |
125 |
in |
in |
126 |
DstIL.CFG{entry = ref entry, exit = ref (renameNd env (!exit))} |
DstIL.CFG{entry = entry, exit = renameNd env exit} |
127 |
end |
end |
128 |
|
|
129 |
fun translate (vMap, cfg) = let |
fun translate (vMap, cfg) = let |
|
Legend:
Removed from v.499 |
|
changed lines |
|
Added in v.500 |
|
|