[PATCH] D14227: Add a new attribute: norecurse

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 4 09:46:34 PST 2015


This should probably be raised on llvm-dev for boarder visibility.

Side question: What optimizations or codegen opportunities does this 
enable?  i.e. what's the actual use case?

On 11/02/2015 05:03 AM, James Molloy via llvm-commits wrote:
> jmolloy created this revision.
> jmolloy added reviewers: manmanren, dexonsmith, joker.eph.
> jmolloy added a subscriber: llvm-commits.
> jmolloy set the repository for this revision to rL LLVM.
>
> 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.
>
> The norecurse attribute indicates that the function does not call itself either directly or indirectly down any possible call path.
>
> Repository:
>    rL LLVM
>
> http://reviews.llvm.org/D14227
>
> Files:
>    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/invalid-bitcode.test
>    test/Bitcode/attributes.ll
>    test/Bitcode/compatibility.ll
>    test/Bitcode/invalid.ll
>    test/LTO/X86/invalid.ll
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151104/fa21ab6a/attachment.html>


More information about the llvm-commits mailing list