Add InaccessibleMemOnly and inaccessibleMemOrArgMemOnly attributes
authorVaivaswatha Nagaraj <vn@compilertree.com>
Wed, 16 Dec 2015 16:16:19 +0000 (16:16 +0000)
committerVaivaswatha Nagaraj <vn@compilertree.com>
Wed, 16 Dec 2015 16:16:19 +0000 (16:16 +0000)
commitee7970e77ea2553aa5cd1a26f40296f1b7cf4305
tree7862c79ec64ebee4fc9dd24fe6a32c19378aad1f
parentf75627aa1c8c16e91d97377a7f790e24c1da723e
Add InaccessibleMemOnly and inaccessibleMemOrArgMemOnly attributes

Summary:
This patch introduces two new function attributes

InaccessibleMemOnly: This attribute indicates that the function may only access memory that is not accessible by the program/IR being compiled. This is a weaker form of ReadNone.
inaccessibleMemOrArgMemOnly: This attribute indicates that the function may only access memory that is either not accessible by the program/IR being compiled, or is pointed to by its pointer arguments. This is a weaker form of  ArgMemOnly

Test cases have been updated. This revision uses this (https://github.com/llvm-mirror/llvm/commit/d001932f3a8aa1ebd1555162fdce365f011bc292) as reference.

Reviewers: jmolloy, hfinkel

Subscribers: reames, joker.eph, llvm-commits

Differential Revision: http://reviews.llvm.org/D15499

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255778 91177308-0d34-0410-b5e6-96231b3b80d8
19 files changed:
docs/LangRef.rst
include/llvm/Bitcode/LLVMBitCodes.h
include/llvm/IR/Attributes.td
include/llvm/IR/Function.h
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/IR/Attributes.cpp
lib/IR/Verifier.cpp
test/Bindings/llvm-c/Inputs/invalid.ll.bc
test/Bindings/llvm-c/invalid-bitcode.test
test/Bitcode/attributes.ll
test/Bitcode/compatibility.ll
test/Bitcode/invalid.ll
test/Bitcode/invalid.ll.bc
test/LTO/X86/Inputs/invalid.ll.bc
test/LTO/X86/invalid.ll