[PATCH] D15820: [MemoryBuiltins] Remove isOperatorNewLike by consolidating non-null inference handling

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 29 18:06:37 PST 2015


reames created this revision.
reames added reviewers: chandlerc, majnemer, nlopes.
reames added a subscriber: llvm-commits.

This patch removes the isOperatorNewLike predicate since it was only being used to establish a non-null return value and we have attributes specifically for that purpose with generic handling.  To keep approximate the same behaviour for existing frontends, I added the various operator new like (i.e. instances of operator new) to InferFunctionAttrs.  It's not really clear to me why this isn't handled in Clang, but I didn't want to break existing code and any subtle assumptions it might have.

Once this patch is in, I'm going to start separating the isAllocLike family of predicates.  These appear to be being used for a mixture of things which should be more clearly separated and documented.  Today, they're being used to indicate (at least) aliasing facts, CSE-ability, and default values from an allocation site.  

http://reviews.llvm.org/D15820

Files:
  include/llvm/Analysis/MemoryBuiltins.h
  lib/Analysis/MemoryBuiltins.cpp
  lib/Analysis/ValueTracking.cpp
  lib/Transforms/IPO/InferFunctionAttrs.cpp
  test/Transforms/InferFunctionAttrs/annotate.ll
  test/Transforms/InstSimplify/call.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15820.43771.patch
Type: text/x-patch
Size: 5487 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151230/ff8ad522/attachment.bin>


More information about the llvm-commits mailing list