[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