Add a new attribute: norecurse
authorJames Molloy <james.molloy@arm.com>
Fri, 6 Nov 2015 10:32:53 +0000 (10:32 +0000)
committerJames Molloy <james.molloy@arm.com>
Fri, 6 Nov 2015 10:32:53 +0000 (10:32 +0000)
commitd001932f3a8aa1ebd1555162fdce365f011bc292
tree1f61bc6ac09f2ddb1c7c0235303e3dde4b3821da
parent2c55ab4f58c262f006d1b1e62607d3ae261c4756
Add a new attribute: norecurse

This attribute allows the compiler to assume that the function never recurses into itself, either directly or indirectly (transitively). This can be used among other things to demote global variables to locals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252282 91177308-0d34-0410-b5e6-96231b3b80d8
19 files changed:
docs/LangRef.rst
include/llvm/Bitcode/LLVMBitCodes.h
include/llvm/IR/Attributes.h
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