<div dir="ltr">Hello all,<div><br><div>I've seen some discussion that InstCombine is "too general" and that llvm should implement a proper graph rewrite mechanism:</div><div><br></div><div>Link to llvm-dev discussion about this: <a href="http://lists.llvm.org/pipermail/llvm-dev/2017-May/113219.html">http://lists.llvm.org/pipermail/llvm-dev/2017-May/113219.html</a>,</div><div>Link to review where this came up (and I first heard about it): <a href="https://reviews.llvm.org/D37195">https://reviews.llvm.org/D37195</a>.</div><div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>Also, there is the idea of Equality Saturation (<a href="http://www.cs.cornell.edu/~ross/publications/eqsat/">http://www.cs.cornell.edu/~ross/publications/eqsat/</a>) that I found out about recently. Could this be used to augment the InstCombine infrastructure?<br></div><div><br></div><div>Thanks,</div><div>~Siddharth</div><div><br></div></div></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>