dflo/dg compiler graph display/data flow equation display tool

mwolfe@dat.cse.ogi.edu (Michael Wolfe)
30 Aug 1996 00:33:33 -0400

          From comp.compilers

Related articles
dflo/dg compiler graph display/data flow equation display tool mwolfe@dat.cse.ogi.edu (1996-08-30)
| List of all articles for this month |

From: mwolfe@dat.cse.ogi.edu (Michael Wolfe)
Newsgroups: comp.compilers
Date: 30 Aug 1996 00:33:33 -0400
Organization: Oregon Graduate Institute (OGI), Portland, Oregon
Keywords: tools, available, analysis

A new version of dflo is available from ogi. Dflo displays flow graphs and
trees on an X terminal or in a Postscript file (the Postscript output is
new). The tool is simple and fast. Dflo is built using our 'dg' graph
display library; the library can be used to make other tools, or as we have
done, to integrate into a compiler for debugging and viewing internal data
structures. The library allows several shapes for nodes and different types
of edges, and supports annotations in nodes and along edges. The dflo
application reads a file or files containing the flow graph, the variables
assigned and expressions computed in each flow graph node, and a system of
data-flow equations, solves the equations and allows you to interactively
view the results; neat when playing with data-flow equations.

Dflo is available at:

I've compared dflo as a graph display tool to xvcg, another tool available
via anonymous ftp from ftp.cs.uni-sb.de.

1. Speed: Both tools are quite fast; xvcg is remarkably fast considering all
its features. Both tools take shortcuts, explicitly preferring speed to
beauty. I admit the graphs put out by xvcg are probably prettier than the
graphs put out by dflo, though its input is more complex, too [not an issue
when the input is generated by another program, like a compiler]. Dflo
scrolls and scales more quickly than xvcg, but that's because dflo cheats
(it doesn't draw the text or arrowheads while scrolling or scaling).

2. Features: xvcg has many more features, in particular for the compiler
domain. Xvcg supports color, dflo doesn't (not that it's hard to add, but I
never got around to it).

3. Freedom: dflo is explicitly in the public domain; xvcg is licensed with
the GPL, and several modules are 'uglified'. However, dflo uses the Motif
widget set, which is not free, xvcg does not.

4. Size: dflo is 10,000 lines of code; xvcg is over 60,000 lines; however,
xvcg has several different layout algorithms, dflo has two (one for trees,
one for 'not-trees').

5. Customizability: I can't speak for xvcg, I've not looked at it much.
There are sample applications with xvcg that show how to communicate between
a running program and the xvcg display, allowing for some interactivity.
We've integrated the dg library into our compiler, so we can directly
display the flow graph, and when clicking on a flow graph node, show the
contents of that node, and so on. Dflo will also manage multiple open
windows, I don't know aobut xvcg; considering how many other features it
has, it wouldn't surprise me.

6. Postscript output: both support it. I haven't seen all the features of
xvcg here; dflo can put out a graph that is scaled to a single page, or will
automatically spread itself over several pages. Dflo's output Postscript
file is quite a bit smaller, though probably because dflo doesn't have so
many features.

Enjoy either one. I strongly urge compiler hackers to use a graphical tool
to show the graphs and trees; it certainly changed the way I view the data
structures, and it really is faster than doing by hand.

This is the last version of dflo that will be released from OGI.
-Michael Wolfe
- Michael Wolfe (mwolfe@cse.ogi.edu)

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.