[PATCH] D28494: Make `@llvm.objectsize` more conservative with null pointers.

George Burgess IV via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 18 11:28:56 PST 2017


george.burgess.iv added inline comments.


================
Comment at: lib/Analysis/MemoryBuiltins.cpp:439
+    if (ValueIsFromNull && NullIsUnknownSize)
+      return ConstantInt::get(ResultType, MaxVal ? -1ULL : 0);
     return ConstantInt::get(ResultType, Size);
----------------
ahatanak wrote:
> Is there a possibility that, when NullIsUnknownSize=true and MustSucceed=false, returning a ConstantInt instead of a nullptr can cause InstCombine to prematurely optimize away objectsize?
> 
> I'm thinking about a case where the first operand of objectsize is "select %cmp, null, %someptr". If %cmp turns out to be false later and the size of the object "%someptr" points to is known, objectsize can be replaced with the exact size of the object. 
Good point. I rewrote this to just return `unknown`, then. :)


https://reviews.llvm.org/D28494





More information about the llvm-commits mailing list