<div dir="ltr">I don't think this solves our problem, though.  We don't run lint after every optimization pass and crash if it fails.  We do run the verifier, though.  I'm very concerned about shaking out inalloca bugs, and optimizer bugs are a lot easier to understand at compile time than at runtime.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, May 3, 2014 at 11:36 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Heh. Was actua0lly looking at this in my post-commit review queue, and had the same comment. I think most of the inalloca stuff is *much* better fitting as a lint check than verifier.</div>
<div class="gmail_extra">
<br><br><div class="gmail_quote"><div><div class="h5">On Sat, May 3, 2014 at 10:55 PM, Chris Lattner <span dir="ltr"><<a href="mailto:clattner@apple.com" target="_blank">clattner@apple.com</a>></span> wrote:<br></div>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<div><br>
On May 2, 2014, at 3:28 PM, Reid Kleckner <<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>> wrote:<br>
<br>
> So, we don't generally fail verification because somebody gave us well-formed but nonsensical IR.<br>
<br>
</div>Right.<br>
<div><br>
> I kind of compromised on the last verifier change because I think it will save us lots of time, and we can revert it if somebody objects.  Consider the FAQ about calling convention mismatches:<br>
><br>
> <a href="http://llvm.org/docs/FAQ.html#why-does-instcombine-simplifycfg-turn-a-call-to-a-function-with-a-mismatched-calling-convention-into-unreachable-why-not-make-the-verifier-reject-it" target="_blank">http://llvm.org/docs/FAQ.html#why-does-instcombine-simplifycfg-turn-a-call-to-a-function-with-a-mismatched-calling-convention-into-unreachable-why-not-make-the-verifier-reject-it</a><br>


><br>
> It's not clear to me that this new check will find lots of optimizer bugs for us, but I could be proven wrong, and yes, it might take more time to figure it out without a verifier check.  Anyway, I think we need a second opinion to keep going in this direction, so I added Nick.<br>


<br>
</div>We really really should not put this kind of check into the verifier.  The compiler needs to be able to compile nonsensical but structurally valid code, because it may be dynamically dead, and it may be introduced by other transformations.<br>


<br>
Not all hope is lost though, this is a great thing to add to llvm/lib/Analysis/Lint.cpp<br>
<span><font color="#888888"><br>
-Chris<br>
</font></span></div></div><div><div>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>