[llvm-dev] InstCombine, graph rewriting, Equality saturation
Sean Silva via llvm-dev
llvm-dev at lists.llvm.org
Mon Sep 11 08:50:05 PDT 2017
On Mon, Sep 11, 2017 at 8:14 AM, Daniel Neilson via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Just thinking out loud…. I’m really not familiar with the vast majority of
> what instcombine does, so please excuse me if my naiveté is too obvious. I
> can’t help but notice all of the uses of ‘and’ in Daniel B’s description of
> what instcombine is right now:
> > On Sep 8, 2017, at 11:27 PM, Daniel Berlin via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> > FWIW, Before getting to "how to do it", I think InstCombine needs an
> actual goal.
> > Right now it's "do a bunch of instruction combination and
> canonicalization and random kinds of semi-local optimization with some
> weird analysis and other stuff in the middle.
> > Iterate this as hard as we can"
> > Nobody can really draw any real dividing line for what should be there
> or not except based on how easy or expensive it is to shove it in.
> > That's a recipe for pass creep.
> This makes me wonder… is it sensible to be talking about splitting up
> instcombine into multiple separate passes? Would such a thing even be
> possible? For example, split by functionality into separate passes that
> each do one of:
> * instruction combinations
> * canonicalization
> * semi-local optimizations
> * etc…
> Or something like that.
> As separate passes, each would probably have a natural way to be
> implemented effectively and those implementations might vary.
One obstacle to that is that currently instcombine has an internal
fixed-point iteration that it does.
So when splitting it into separate passes we would need to either add
fixed-point iteration to the pass manager running the separate instcombine
passes (extending the pass management in this way is doable and has been
explored in the past, e.g. https://www.youtube.com/watch?v=c7iP43an5_Q ) or
demonstrate/measure that we don't regress without the fixed-point iteration
across separate instcombine passes.
-- Sean Silva
> Daniel Neilson, Ph.D.
> Azul Systems
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev