On 8/1/07 3:03 PM, Bob Rossi wrote: > Is there a way to make it show the actual expressions in the code > instead?
Other than changing the code in tree-cfg.c:tree_cfg2vcg(), not really. Also, this dump is fairly static in that it only happens right after the CFG is built for the first time (before any optimizations). > Also, is there a native way to display this information using > dot instead? Perhaps it would be easier to post-process the dumps that contain basic block information (-fdump-tree-all-blocks). I generally use the attached script to get the CFG out of an arbitrary pass. It's very simplistic, but it could be adapted to do what you want.
#!/bin/sh # # (C) 2005 Free Software Foundation # Contributed by Diego Novillo <[EMAIL PROTECTED]>. # # This script is Free Software, and it can be copied, distributed and # modified as defined in the GNU General Public License. A copy of # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html if [ "$1" = "" ] ; then echo "usage: $0 file" echo echo "Generates a GraphViz .dot graph file from 'file'." echo "It assumes that 'file' has been generated with -fdump-tree-...-blocks" echo exit 1 fi file=$1 out=$file.dot echo "digraph cfg {" > $out echo " node [shape=box]" >>$out echo ' size="11,8.5"' >>$out echo >>$out (grep -E '# BLOCK|# PRED:|# SUCC:' $file | \ sed -e 's:\[\([0-9\.%]*\)*\]::g;s:([a-z_,]*)::g' | \ awk '{ #print $0; \ if ($2 == "BLOCK") \ { \ bb = $3; \ print "\t", bb, "[label=\"", bb, "\", style=filled, color=gray]"; \ } \ else if ($2 == "PRED:") \ { \ for (i = 3; i <= NF; i++) \ print "\t", $i, "->", bb, ";"; \ } \ }') >> $out echo "}" >> $out