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)
commitb0407ba0716d940d035f5da73f6d3bfbaffecb44
tree0fb08700ec2601986a9f5195a9d57fb6e0b48444
parent9cf7ac75893c9f83099ce59dd4fd5d1ba7ead25a
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).

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