OSDN Git Service

[LowerGuardIntrinsics] Keep track of !make.implicit metadata
authorSanjoy Das <sanjoy@playingwithpointers.com>
Sat, 30 Apr 2016 00:55:59 +0000 (00:55 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Sat, 30 Apr 2016 00:55:59 +0000 (00:55 +0000)
commit793e61921cf2cbeef01297662dd4f3d0d8f77c14
tree31532cd6be46198db7506681066fb17e8caf6981
parent177402482eca627769a1a1c05fa1755072717202
[LowerGuardIntrinsics] Keep track of !make.implicit metadata

If a guard call being lowered by LowerGuardIntrinsics has the
`!make.implicit` metadata attached, then reattach the metadata to the
branch in the resulting expanded form of the intrinsic.  This allows us
to implement null checks as guards and still get the benefit of implicit
null checks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268148 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst
lib/Transforms/Scalar/LowerGuardIntrinsic.cpp
test/Transforms/LowerGuardIntrinsic/basic.ll