[llvm-dev] InstCombine, graph rewriting, Equality saturation (original) (raw)

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