Implement the flatten attribute.
authorPeter Collingbourne <peter@pcc.me.uk>
Tue, 20 May 2014 17:12:51 +0000 (17:12 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Tue, 20 May 2014 17:12:51 +0000 (17:12 +0000)
commit41af7c2fdc8cc2ef186669dcb21cac58d5bd69ee
treee14576af7ea247b91481c99de20e727be5992c24
parent650c8f2a06f138d795d0188ec8276638e13f7c9d
Implement the flatten attribute.

This is a GNU attribute that causes calls within the attributed function
to be inlined where possible. It is implemented by giving such calls the
alwaysinline attribute.

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

llvm-svn: 209217
clang/include/clang/Basic/Attr.td
clang/include/clang/Basic/AttrDocs.td
clang/lib/CodeGen/CGCall.cpp
clang/lib/Sema/SemaDeclAttr.cpp
clang/test/CodeGen/flatten.c [new file with mode: 0644]
clang/test/CodeGenCXX/flatten.cpp [new file with mode: 0644]
clang/test/SemaCXX/attr-flatten.cpp [new file with mode: 0644]