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

Chris Lattner clattner at apple.com
Sat May 3 22:55:54 PDT 2014


On May 2, 2014, at 3:28 PM, Reid Kleckner <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



More information about the llvm-commits mailing list