public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* A visualization of GCC's passes, as a subway map
@ 2011-07-11 17:59 David Malcolm
  2011-07-12  3:43 ` Mingjie Xing
  2011-07-12  7:23 ` Paolo Bonzini
  0 siblings, 2 replies; 20+ messages in thread
From: David Malcolm @ 2011-07-11 17:59 UTC (permalink / raw)
  To: gcc; +Cc: gcc-python-plugin

For fun over the weekend I wrote a python script (using my
gcc-python-plugin[1]) to render an SVG diagram of GCC's optimization
passes (or, at least, based on my understanding of them).

This diagram shows the various GCC optimization passes, arranged
vertically, showing child passes via indentation.

The lifetime of the various properties that they maintain is shown,
giving the pass that initially creates the data (if any), the pass that
destroys it (if any), and each pass that requires a particular property
(based on the PROP_* flags).  I've attempted to make it look a little
like a subway train schematic map, where the properties are train lines,
and the passes are the stations they stop at; the initial/final passes
are the termini.

The resulting SVG can be seen at the top of:
http://readthedocs.org/docs/gcc-python-plugin/en/latest/tables-of-passes.html

Direct link to SVG, in case the above gets mangled on your browser:
http://readthedocs.org/docs/gcc-python-plugin/en/latest/_images/passes.svg
(550 x 3302 pixels; about 250k in size).

The script can be seen here (it uses pycairo to abstract the drawing
operations):
http://git.fedorahosted.org/git/?p=gcc-python-plugin.git;a=blob;f=generate-passes-svg.py

Hope this is fun/helpful (and that I'm correctly interpreting the data!)
Dave

[1] https://fedorahosted.org/gcc-python-plugin/

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2011-07-14 15:14 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-11 17:59 A visualization of GCC's passes, as a subway map David Malcolm
2011-07-12  3:43 ` Mingjie Xing
2011-07-12 16:53   ` David Malcolm
2011-07-12  7:23 ` Paolo Bonzini
2011-07-12 10:51   ` Paulo J. Matos
2011-07-12 16:08     ` Paolo Bonzini
2011-07-12 16:11       ` Paulo J. Matos
2011-07-12 16:16     ` David Malcolm
2011-07-12 16:19       ` Xinliang David Li
2011-07-12 18:08         ` David Malcolm
2011-07-12 18:10           ` Xinliang David Li
2011-07-13  9:53       ` Paolo Bonzini
2011-07-13 10:58         ` Richard Guenther
2011-07-13 13:22           ` Paolo Bonzini
2011-07-14  9:21             ` Richard Guenther
2011-07-14 10:29               ` Paolo Bonzini
2011-07-14 15:31                 ` Michael Matz
2011-07-12 15:07   ` Joel Sherrill
2011-07-12 18:29     ` David Malcolm
2011-07-12 21:59       ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).