Add a 'dynamic' parameter to the objectsize intrinsic
authorErik Pilkington <erik.pilkington@gmail.com>
Wed, 30 Jan 2019 20:34:35 +0000 (20:34 +0000)
committerErik Pilkington <erik.pilkington@gmail.com>
Wed, 30 Jan 2019 20:34:35 +0000 (20:34 +0000)
commit600e9deacfa86a827d7cba4494c55ca6909e045f
tree7e5d8a592a7ea359f564f46cd8a691bde4042a8c
parent7e880b026220e41125ca5acc6e7e319d18951142
Add a 'dynamic' parameter to the objectsize intrinsic

This is meant to be used with clang's __builtin_dynamic_object_size.
When 'true' is passed to this parameter, the intrinsic has the
potential to be folded into instructions that will be evaluated
at run time. When 'false', the objectsize intrinsic behaviour is
unchanged.

rdar://32212419

Differential revision: https://reviews.llvm.org/D56761

llvm-svn: 352664
29 files changed:
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/CGExpr.cpp
clang/test/CodeGen/alloc-size.c
clang/test/CodeGen/catch-undef-behavior.c
clang/test/CodeGen/object-size.c
clang/test/CodeGen/object-size.cpp
llvm/docs/LangRef.rst
llvm/include/llvm/Analysis/MemoryBuiltins.h
llvm/include/llvm/IR/Intrinsics.td
llvm/lib/Analysis/MemoryBuiltins.cpp
llvm/lib/CodeGen/CodeGenPrepare.cpp
llvm/lib/IR/AutoUpgrade.cpp
llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
llvm/test/Assembler/auto_upgrade_intrinsics.ll
llvm/test/CodeGen/AMDGPU/promote-alloca-mem-intrinsics.ll
llvm/test/CodeGen/X86/is-constant.ll
llvm/test/Other/cgscc-libcall-update.ll
llvm/test/Transforms/CodeGenPrepare/basic.ll
llvm/test/Transforms/CodeGenPrepare/crash-on-large-allocas.ll
llvm/test/Transforms/InferAddressSpaces/AMDGPU/intrinsics.ll
llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll [new file with mode: 0644]
llvm/test/Transforms/InstCombine/invoke.ll
llvm/test/Transforms/InstCombine/memset_chk-1.ll
llvm/test/Transforms/InstCombine/objsize.ll
llvm/test/Transforms/InstCombine/stpcpy_chk-1.ll
llvm/test/Transforms/InstCombine/strcpy_chk-1.ll