[PATCH] IR: Check inalloca call argument originating from parameter

Philip Reames listmail at philipreames.com
Mon May 5 09:21:30 PDT 2014


Speaking as someone with a language frontend which fairly frequently 
generates nonsensical code you'd never see out of Clang, I *strongly* 
agree that this functionality should not be in the Verifier.  :)

Philip

On 05/03/2014 11:36 PM, Chandler Carruth wrote:
> 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.
>
>
> On Sat, May 3, 2014 at 10:55 PM, Chris Lattner <clattner at apple.com 
> <mailto:clattner at apple.com>> wrote:
>
>
>     On May 2, 2014, at 3:28 PM, Reid Kleckner <rnk at google.com
>     <mailto:rnk at google.com>> wrote:
>
>     > So, we don't generally fail verification because somebody gave
>     us well-formed but nonsensical IR.
>
>     Right.
>
>     > 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:
>     >
>     >
>     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
>     >
>     > 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.
>
>     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.
>
>     Not all hope is lost though, this is a great thing to add to
>     llvm/lib/Analysis/Lint.cpp
>
>     -Chris
>     _______________________________________________
>     llvm-commits mailing list
>     llvm-commits at cs.uiuc.edu <mailto:llvm-commits at cs.uiuc.edu>
>     http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140505/2da99e81/attachment.html>


More information about the llvm-commits mailing list