From 51b3b1fd87a0577824b4a44bf1eee15885fd1856 Mon Sep 17 00:00:00 2001 From: Alex Vondrak Date: Sat, 4 Jun 2011 12:38:42 -0700 Subject: [PATCH] compiler.cfg.graphviz: tweak code & output a little --- basis/compiler/cfg/graphviz/graphviz.factor | 39 +++++++-------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/basis/compiler/cfg/graphviz/graphviz.factor b/basis/compiler/cfg/graphviz/graphviz.factor index 2515c5585d..0fd6ae14a6 100644 --- a/basis/compiler/cfg/graphviz/graphviz.factor +++ b/basis/compiler/cfg/graphviz/graphviz.factor @@ -42,41 +42,28 @@ IN: compiler.cfg.graphviz [ number>> ] bi@ -> ] with each ; -SYMBOL: linearize? -linearize? off - -: ?linearize ( graph cfg -- graph' ) - linearize? get [ - - edge[ "invis" =style ]; - swap linearization-order [ number>> ] map ~-> - add - ] [ drop ] if ; - -: cfgviz ( cfg filename -- cfg ) - over +: cfgviz ( cfg -- graph ) 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 ;