linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dibyendu Majumdar <mobile@majumdar.org.uk>
To: Christopher Li <sparse@chrisli.org>
Cc: Linux-Sparse <linux-sparse@vger.kernel.org>,
	Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: Some random thoughts regarding the SSA paper
Date: Wed, 16 Aug 2017 10:55:09 +0100	[thread overview]
Message-ID: <CACXZuxdnMFA5HPg3GXLWXP6+Mk8+UikcZsJZH8DJ227PYHyEfQ@mail.gmail.com> (raw)
In-Reply-To: <CANeU7QmcVS_8oko6RhG_g_97AjUNVYa=KDqDocbXL5ney=mrJw@mail.gmail.com>

Hi Chris,

On 16 August 2017 at 07:33, Christopher Li <sparse@chrisli.org> wrote:
> I have spend some time reading the paper
>
> http://compilers.cs.uni-saarland.de/papers/bbhlmz13cc.pdf
>
> "Simple and Efficient SSA Construction". Which is luc's SSA
> conversion is based on:
>
> Here is some random thoughts about the paper I might just
> share with you guys. If I make a mistake some where along
> the line, I am very glad if some one can point it out to me.
>
> - I think the main point of the paper doing SSA without
>   the CFG is not particular useful to us. We need to generate
>   CFG *anyway*.
>
> - The "Simple and Efficient" part has obvious limitation on
>   reducible graph. Once go over the fence of irreducible graph,
>    the solution is no longer simple nor efficient. For irreducible
>    graph it do need the CFG. That means the CFG is actuall
>    unavoidable consider source can have irreducible graph.
>

I would argue that the simplest possible solution is what we should
start with. The solution implemented based on this paper appears to be
simple and elegant - and if this works correctly then why go for more
complicated solutions? Theoretical scenarios are not very useful - in
my view, if the solution works now with all known inputs then it is
good enough.

>
> - Cytron might still be worthwhile to implement due to the better
>    worse case complexity.
>
>

Certainly you should prototype this - even if just to compare. But I
would suggest - lets merge the solution we have now. Additional
solutions are always good to have.

The great thing about Sparse I find is that it is smaller and simpler
than gcc or clang - and I would urge that this should be maintained.

Regards
Dibyendu

  parent reply	other threads:[~2017-08-16  9:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-16  6:33 Some random thoughts regarding the SSA paper Christopher Li
2017-08-16  7:15 ` Luc Van Oostenryck
2017-08-16 12:03   ` Christopher Li
2017-08-16  9:55 ` Dibyendu Majumdar [this message]
2017-08-16 12:09   ` Christopher Li
2017-08-16 12:24     ` Dibyendu Majumdar
2017-08-16 12:42       ` Christopher Li
2017-08-16 12:47         ` Dibyendu Majumdar
2017-08-16 12:56           ` Christopher Li
2017-08-16 12:33     ` Luc Van Oostenryck
2017-08-16 12:34       ` Christopher Li

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=CACXZuxdnMFA5HPg3GXLWXP6+Mk8+UikcZsJZH8DJ227PYHyEfQ@mail.gmail.com \
    --to=mobile@majumdar.org.uk \
    --cc=linux-sparse@vger.kernel.org \
    --cc=luc.vanoostenryck@gmail.com \
    --cc=sparse@chrisli.org \
    --cc=torvalds@linux-foundation.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 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 NNTP newsgroup(s).