All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Triplett <josh@freedesktop.org>
To: Dan Sheridan <djs@postman.org.uk>
Cc: linux-sparse@vger.kernel.org
Subject: Re: [PATCH 0/2] Improved flow graphs
Date: Tue, 22 May 2007 15:11:50 -0700	[thread overview]
Message-ID: <46536AA6.20604@freedesktop.org> (raw)
In-Reply-To: <1179310281.31308.54.camel@localhost.localdomain>

[-- Attachment #1: Type: text/plain, Size: 1677 bytes --]

Dan Sheridan wrote:
> These two patches are the first of several implementing improved graph
> generation for Sparse.

Very nice work.  I've applied both patches in this series.

I also added shebangs to the gvpr scripts and made them executable, so you
can just run graph ... | gvpr/return-paths | dot ...

I noticed one minor issue: gvpr/return-paths seems to turn some internal
edges in functions into dotted-line return paths.

Also, unprocessed graphs have now become far more messy; for instance,
graphing validation/context.c generates numerous edges to a() and r().  Any
way you could prevent these edges from crossing other subgraphs?  Any way to
make these edges just point to a separate node "a()" and let people look up
a() themselves, removing the excess edges?  Perhaps with a gvpr script?

> Initially, I am dealing with straight-forward
> control flow. Forthcoming patches will add program dependency graphs (a
> control and data flow representation suitable for program slicing) and
> simple pointer alias analysis (for handling indirect calls).

I look forward to seeing these future enhancements.  Pointer alias analysis
would help greatly with many other things in Sparse.

> I've tried to keep the C part of the flow graph relatively simple, and
> put the hard stuff (like return edges and subgraph processing) in
> post-processing scripts. 
> 
> Example graph can be seen at
> http://www.postman.org.uk/djs52/example.png, generated with
> 
>   ./graph validation/context.c | gvpr -f gvpr/return-paths | \
>     gvpr -f gvpr/subg-fwd -a good_while3 | dot -Tpng > /tmp/example.png

Impressive work.

- Josh Triplett


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

  parent reply	other threads:[~2007-05-22 22:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-16 10:11 [PATCH 0/2] Improved flow graphs Dan Sheridan
2007-05-16 18:03 ` Anderson Lizardo
2007-05-22 22:11 ` Josh Triplett [this message]
2007-05-29 16:05   ` Dan Sheridan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46536AA6.20604@freedesktop.org \
    --to=josh@freedesktop.org \
    --cc=djs@postman.org.uk \
    --cc=linux-sparse@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.