<p dir="ltr">Thanks for the response. </p>
<p dir="ltr">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.</p>
<p dir="ltr">Thanks,<br>
Siddharth </p>
<br><div class="gmail_quote"><div dir="ltr">On Wed 6 Sep, 2017, 23:35 John Regehr via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Equality saturation is very cool work and Ross Tate mentioned to me that<br>
he'd be happy to chat with you about this.<br>
<br>
But also, you might take a look at some existing projects in this<br>
general space that are already integrated with LLVM, such as Souper and<br>
Alive.<br>
<br>
InstCombine is pretty cool but developing techniques to build these<br>
things automatically is awesome and on my wish list. There's potential<br>
for improvements in all of: speed, code quality, and correctness.<br>
<br>
While we're on the subject: Are the canonicalization rules for LLVM IR<br>
documented anywhere?<br>
<br>
Thanks,<br>
<br>
John<br>
<br>
<br>
<a href="https://github.com/google/souper" rel="noreferrer" target="_blank">https://github.com/google/souper</a><br>
<a href="https://github.com/nunoplopes/alive" rel="noreferrer" target="_blank">https://github.com/nunoplopes/alive</a><br>
<br>
<br>
<br>
On 9/5/17 4:57 PM, (IIIT) Siddharth Bhat via llvm-dev wrote:<br>
> Hello all,<br>
><br>
> I've seen some discussion that InstCombine is "too general" and that<br>
> llvm should implement a proper graph rewrite mechanism:<br>
><br>
> Link to llvm-dev discussion about<br>
> this: <a href="http://lists.llvm.org/pipermail/llvm-dev/2017-May/113219.html" rel="noreferrer" target="_blank">http://lists.llvm.org/pipermail/llvm-dev/2017-May/113219.html</a>,<br>
> Link to review where this came up (and I first heard about<br>
> it): <a href="https://reviews.llvm.org/D37195" rel="noreferrer" target="_blank">https://reviews.llvm.org/D37195</a>.<br>
><br>
> I wanted to understand what the current issues with InstCombine are, and<br>
> if a graph rewriter prototype is something people are interested in. I<br>
> find the idea appealing, from what little I know it, so I'd be<br>
> interested in hacking something up.<br>
><br>
> What would such a framework look like? Is there past literature on the<br>
> subject? From what I know, many functional compilers using combinator<br>
> based compilation were graph rewriting. Is there other prior art?<br>
><br>
> Also, there is the idea of Equality Saturation<br>
> (<a href="http://www.cs.cornell.edu/~ross/publications/eqsat/" rel="noreferrer" target="_blank">http://www.cs.cornell.edu/~ross/publications/eqsat/</a>) that I found out<br>
> about recently. Could this be used to augment the InstCombine<br>
> infrastructure?<br>
><br>
> Thanks,<br>
> ~Siddharth<br>
><br>
> --<br>
> Sending this from my phone, please excuse any typos!<br>
><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div><div dir="ltr">-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Sending this from my phone, please excuse any typos!</div></div>