]> gitweb.factorcode.org Git - factor.git/commitdiff
compiler.cfg.graphviz: tweak code & output a little
authorAlex Vondrak <ajvondrak@csupomona.edu>
Sat, 4 Jun 2011 19:38:42 +0000 (12:38 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 12 Sep 2012 22:14:06 +0000 (15:14 -0700)
basis/compiler/cfg/graphviz/graphviz.factor

index 2515c5585de3205fae8c928dfb6faf1482712f2e..0fd6ae14a602ce56573c054ebb8e9883210f5e08 100644 (file)
@@ -42,41 +42,28 @@ IN: compiler.cfg.graphviz
         [ number>> ] bi@ ->
     ] with each ;
 
-SYMBOL: linearize?
-linearize? off
-
-: ?linearize ( graph cfg -- graph' )
-    linearize? get [
-        <anon>
-            edge[ "invis" =style ];
-            swap linearization-order [ number>> ] map ~->
-        add
-    ] [ drop ] if ;
-
-: cfgviz ( cfg filename -- cfg )
-    over
+: cfgviz ( cfg -- graph )
     <digraph>
         graph[ "t" =labelloc ];
         node[ "box" =shape "Courier" =fontname 10 =fontsize ];
-        swap
-        [ ?linearize ]
-        [ [ add-cfg-vertex ] each-basic-block ]
-        [ [ add-cfg-edges ] each-basic-block ]
-        tri
-    swap png ;
+        swap [
+            [ add-cfg-vertex ] [ add-cfg-edges ] bi
+        ] each-basic-block ;
 
-: perform-pass ( cfg pass -- cfg' )
-    def>> call( cfg -- cfg' ) ;
+: perform-pass ( cfg pass pass# -- cfg' )
+    drop def>> call( cfg -- cfg' ) ;
 
-: pass-file ( pass pass# -- path )
-    [ name>> ] [ number>string "-" append ] bi* prepend ;
+: draw-cfg ( cfg pass pass# -- cfg )
+    [ dup cfgviz ]
+    [ name>> "After " prepend =label ]
+    [ number>string png ]
+    tri* ;
 
 : watch-pass ( cfg pass pass# -- cfg' )
-    [ drop perform-pass ] 2keep
-    pass-file cfgviz ;
+    [ perform-pass ] 2keep draw-cfg ;
 
 : begin-watching-passes ( cfg -- cfg )
-    "0-build-cfg" cfgviz ;
+    \ build-cfg 0 draw-cfg ;
 
 : watch-passes ( cfg -- cfg' )
     \ optimize-cfg def>> [ 1 + watch-pass ] each-index ;