(original) (raw)

Thanks for the response.

Should I create a small prototype of equality saturation as an LLVM pass so that there can be some concrete discussion on this? I'd love pointers.

Thanks,
Siddharth


On Wed 6 Sep, 2017, 23:35 John Regehr via llvm-dev <llvm-dev@lists.llvm.org> wrote:
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@lists.llvm.org
\> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
\>
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
--
Sending this from my phone, please excuse any typos!