Teach MemoryBuiltins and InstructionSimplify that operator new never returns NULL.
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 24 Sep 2013 16:37:51 +0000 (16:37 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 24 Sep 2013 16:37:51 +0000 (16:37 +0000)
commit6629210aaf9d2e4fcbecc80b35f72108304da4b4
tree9e5c76565a5c82aaaabbee0fab814c018ca838d2
parentd721520e4c5d8ad71310a34727a567c3d74e7c08
Teach MemoryBuiltins and InstructionSimplify that operator new never returns NULL.

This is safe per C++11 18.6.1.1p3: [operator new returns] a non-null pointer to
suitably aligned storage (3.7.4), or else throw a bad_alloc exception. This
requirement is binding on a replacement version of this function.

Brings us a tiny bit closer to eliminating more vector push_backs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191310 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/MemoryBuiltins.h
include/llvm/Analysis/ValueTracking.h
lib/Analysis/InstructionSimplify.cpp
lib/Analysis/MemoryBuiltins.cpp
lib/Analysis/ValueTracking.cpp
test/Transforms/InstSimplify/call.ll