Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/cfg-ir/ssa-pp-fn.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/cfg-ir/ssa-pp-fn.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3470, Mon Nov 30 17:51:33 2015 UTC revision 3473, Wed Dec 2 17:57:53 2015 UTC
# Line 90  Line 90 
90                  (* end case *))                  (* end case *))
91            and ppNd (out, noLabel, nd) = let            and ppNd (out, noLabel, nd) = let
92                  val out1 = incIndent out                  val out1 = incIndent out
93                  fun prPhi (y, xs) =                  fun prPhi out (y, xs) =
94                        prln (out1, [                        prln (out, [
95                            typedVar y, " = phi(",                            typedVar y, " = phi(",
96                            String.concatWith "," (List.mapPartial (Option.map Var.toString) xs), ")\n"                            String.concatWith "," (List.mapPartial (Option.map Var.toString) xs), ")\n"
97                          ])                          ])
# Line 129  Line 129 
129                         of IL.NULL => ()                         of IL.NULL => ()
130                          | IL.ENTRY{succ} => goto (out, !succ)                          | IL.ENTRY{succ} => goto (out, !succ)
131                          | IL.JOIN{phis, succ, ...} => (                          | IL.JOIN{phis, succ, ...} => (
132                              List.app prPhi (!phis);                              List.app (prPhi out1) (!phis);
133                              goto (out, !succ))                              goto (out, !succ))
134                          | IL.COND{cond, trueBranch, falseBranch, ...} => (                          | IL.COND{cond, trueBranch, falseBranch, ...} => (
135                              prln (out1, [                              prln (out1, [
# Line 139  Line 139 
139                                ]);                                ]);
140                              ppNd (out, false, !trueBranch);                              ppNd (out, false, !trueBranch);
141                              ppNd (out, false, !falseBranch))                              ppNd (out, false, !falseBranch))
142                            | IL.FOREACH{phis, var, src, body, succ, ...} => (
143                                prln (out1, [
144                                    "foreach (", Var.toString var, " in ", Var.toString src, ")",
145                                    " on exit goto ", IL.Node.toString(!succ), "\n"
146                                  ]);
147                                List.app (prPhi (incIndent out1)) (!phis);
148                                goto (out, !succ))
149                          | IL.COM{text, succ, ...} => (                          | IL.COM{text, succ, ...} => (
150                              List.app (fn s => prln (out1, ["//", s, "\n"])) text;                              List.app (fn s => prln (out1, ["//", s, "\n"])) text;
151                              goto (out, !succ))                              goto (out, !succ))

Legend:
Removed from v.3470  
changed lines
  Added in v.3473

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