Add a dereferenceable attribute
authorHal Finkel <hfinkel@anl.gov>
Fri, 18 Jul 2014 15:51:28 +0000 (15:51 +0000)
committerHal Finkel <hfinkel@anl.gov>
Fri, 18 Jul 2014 15:51:28 +0000 (15:51 +0000)
commit11af4b49b2d816a17cd12e2d071ad8bae4aac351
tree5d4d35327da3fb01e85b9e1c1dd3ff6dacd38391
parenta11bf68f6c72cb024c2ce36db99c416ab312ec78
Add a dereferenceable attribute

This attribute indicates that the parameter or return pointer is
dereferenceable. Practically speaking, loads from such a pointer within the
associated byte range are safe to speculatively execute. Such pointer
parameters are common in source languages (C++ references, for example).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213385 91177308-0d34-0410-b5e6-96231b3b80d8
22 files changed:
docs/LangRef.rst
include/llvm-c/Core.h
include/llvm/Bitcode/LLVMBitCodes.h
include/llvm/IR/Argument.h
include/llvm/IR/Attributes.h
include/llvm/IR/CallSite.h
include/llvm/IR/Function.h
include/llvm/IR/Instructions.h
lib/Analysis/ValueTracking.cpp
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLParser.h
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/IR/AttributeImpl.h
lib/IR/Attributes.cpp
lib/IR/Function.cpp
lib/IR/Value.cpp
test/Bitcode/attributes.ll
test/Transforms/InstSimplify/compare.ll
test/Transforms/LICM/hoist-deref-load.ll [new file with mode: 0644]