summaryrefslogtreecommitdiff
path: root/include/llvm/Attributes.h
Commit message (Collapse)AuthorAge
* Add an 'inline hint' attribute to represent sourceDale Johannesen2009-08-26
| | | | | | | | | | code hints that it would be a good idea to inline a function ("inline" keyword). No functional change yet; FEs do not emit this and inliner does not use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80063 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for naked functionsAnton Korobeynikov2009-07-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76198 91177308-0d34-0410-b5e6-96231b3b80d8
* Cosmetic changes to parameter attribute verification.Duncan Sands2009-06-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73188 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new function attribute - noimplicitfloatDevang Patel2009-06-05
| | | | | | | | | Update code generator to use this attribute and remove NoImplicitFloat target option. Update llc to set this attribute when -no-implicit-float command line option is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72959 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new function attribute - noredzone. Devang Patel2009-06-04
| | | | | | | | Update code generator to use this attribute and remove DisableRedZone target option. Update llc to set this attribute when -disable-red-zone command line option is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72894 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new Attribute::getAlignmentFromAttrs method.Chris Lattner2008-12-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61517 91177308-0d34-0410-b5e6-96231b3b80d8
* Resubmit support for the 'nocapture' attribute.Nick Lewycky2008-12-19
| | | | | | | | | | | The problematic part of this patch is that we were out of attribute bits, requiring some fancy bit hacking to make it fit (by shrinking alignment) without breaking existing users or the file format. This change will require users to rebuild llvm-gcc to match llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61239 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily revert r61019, r61030, and r61040. These were breaking LLVM ReleaseBill Wendling2008-12-16
| | | | | | | builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61094 91177308-0d34-0410-b5e6-96231b3b80d8
* It turns out that "align 1" and unaligned are different. Add a bias to theNick Lewycky2008-12-15
| | | | | | | | | | | alignment attribute such that 0 means unaligned. This will probably require a rebuild of llvm-gcc because of the change to Attributes.h. If you see many test failures on "make check", please rebuild your llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61030 91177308-0d34-0410-b5e6-96231b3b80d8
* Introducing nocapture, a parameter attribute for pointers to indicate that theNick Lewycky2008-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | callee will not introduce any new aliases of that pointer. The attributes had all bits allocated already, so I decided to collapse alignment. Alignment was previously stored as a 16-bit integer from bits 16 to 32 of the attribute, but it was required to be a power of 2. Now it's stored in log2 encoded form in five bits from 16 to 21. That gives us 11 more bits of space. You may have already noticed that you only need four bits to encode a 16-bit power of two, so why five bits? Because the AsmParser accepted 32-bit alignments, even though we couldn't store them (they were silently discarded). Now we can store them in memory, but not in the bitcode. The bitcode format was already storing these as 64-bit VBR integers. So, the bitcode format stays the same, keeping the alignment values stored as 16 bit raw values. There's some hideous code in the reader and writer that deals with this, waiting to be ripped out the moment we run out of bits again and have to replace the parameter attributes table encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61019 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement stack protectors as function attributes: "ssp" and "sspreq".Bill Wendling2008-11-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix whitespace in a comment.Dan Gohman2008-10-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57605 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Devang Patel2008-10-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57522 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix function attribute verification check.Devang Patel2008-10-03
| | | | | | | Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57029 91177308-0d34-0410-b5e6-96231b3b80d8
* Verify function attributes.Devang Patel2008-10-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57020 91177308-0d34-0410-b5e6-96231b3b80d8
* Attributes noinline alwaysinline are incompatibleDevang Patel2008-10-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56939 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing #include for asserts.Bill Wendling2008-09-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56718 91177308-0d34-0410-b5e6-96231b3b80d8
* Now Attributes are divided in three groupsDevang Patel2008-09-26
| | | | | | | | | | | | | | - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn Return attributes use 0 as the index. Function attributes use ~0U as the index. This patch requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56704 91177308-0d34-0410-b5e6-96231b3b80d8
* Large mechanical patch.Devang Patel2008-09-25
| | | | | | | | | | | | | | | | | s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
* s/ParamAttrsWithIndex/FnAttributeWithIndex/gDevang Patel2008-09-24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56535 91177308-0d34-0410-b5e6-96231b3b80d8
* s/ParamAttributeListImpl/AttributeListImpl/gDevang Patel2008-09-24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56532 91177308-0d34-0410-b5e6-96231b3b80d8
* Put FN_NOTE_AlwaysInline and others in FnAttr namespace.Devang Patel2008-09-24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56527 91177308-0d34-0410-b5e6-96231b3b80d8
* Move FN_NOTE_AlwaysInline and other out of ParamAttrs namespace.Devang Patel2008-09-23
| | | | | | | Do not check isDeclaration() in hasNote(). It is clients' responsibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56524 91177308-0d34-0410-b5e6-96231b3b80d8
* 80 colsDevang Patel2008-09-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56521 91177308-0d34-0410-b5e6-96231b3b80d8
* s/ParameterAttributes/Attributes/gDevang Patel2008-09-23
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8