[llvm-dev] InstCombine, graph rewriting, Equality saturation

John Regehr via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 6 14:35:36 PDT 2017


Equality saturation is very cool work and Ross Tate mentioned to me that 
he'd be happy to chat with you about this.

But also, you might take a look at some existing projects in this 
general space that are already integrated with LLVM, such as Souper and 
Alive.

InstCombine is pretty cool but developing techniques to build these 
things automatically is awesome and on my wish list. There's potential 
for improvements in all of: speed, code quality, and correctness.

While we're on the subject: Are the canonicalization rules for LLVM IR 
documented anywhere?

Thanks,

John


https://github.com/google/souper
https://github.com/nunoplopes/alive



On 9/5/17 4:57 PM, (IIIT) Siddharth Bhat via llvm-dev wrote:
> Hello all,
>
> I've seen some discussion that InstCombine is "too general" and that
> llvm should implement a proper graph rewrite mechanism:
>
> Link to llvm-dev discussion about
> this: http://lists.llvm.org/pipermail/llvm-dev/2017-May/113219.html,
> Link to review where this came up (and I first heard about
> it): https://reviews.llvm.org/D37195.
>
> I wanted to understand what the current issues with InstCombine are, and
> if a graph rewriter prototype is something people are interested in. I
> find the idea appealing, from what little I know it, so I'd be
> interested in hacking something up.
>
> What would such a framework look like? Is there past literature on the
> subject? From what I know, many functional compilers using combinator
> based compilation were graph rewriting. Is there other prior art?
>
> Also, there is the idea of Equality Saturation
> (http://www.cs.cornell.edu/~ross/publications/eqsat/) that I found out
> about recently. Could this be used to augment the InstCombine
> infrastructure?
>
> Thanks,
> ~Siddharth
>
> --
> Sending this from my phone, please excuse any typos!
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>


More information about the llvm-dev mailing list