4e2132e7ae4b41ff6093bbaebcb852105277ac53 |
|
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Remove the Inline Asm Non-Standard Dialect attribute. This implementation does not co-exist well with how the sideeffect and alignstack attributes are handled. The reverts r161641. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
249d670dd0f6f151858195701df64fbd005615e7 |
|
10-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Add a new Inline Asm Non-Standard Dialect attribute. This new attribute is intended to be used by the backend to determine how the inline asm string should be parsed/printed. This patch adds the ia_nsdialect attribute and also adds a test case to ensure the IR is correctly parsed, but there is no functional change at this time. The standard dialect is assumed to be AT&T. Therefore, this attribute should only be added to MS-style inline assembly statements, which use the Intel dialect. If we ever support more dialects we'll need to add additional state to the attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
cde227bc2a52c6e05c083df47eb08a01a94a09b1 |
|
24-Jul-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
In order to correctly compile struct s { double x1; float x2; }; __attribute__((regparm(3))) struct s f(int a, int b, int c); void g(void) { f(41, 42, 43); } We need to be able to represent passing the address of s to f (sret) in a register (inreg). Turns out that all that is needed is to not mark them as mutually incompatible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
367783223d6e3d1a421041a539172abc984b9684 |
|
08-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove some trivial copy ctors so the classes become trivially copyable and get the optimized SmallVector implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
e99f8be067b6f2c19058d0f6307e96287a94f55d |
|
28-May-2012 |
Meador Inge <meadori@gmail.com> |
PR12696: Attribute bits above 1<<30 are not encoded in bitcode Attribute bits above 1<<30 are now encoded correctly. Additionally, the encoding/decoding functionality has been hoisted to helper functions in Attributes.h in an effort to help the encoding/decoding to stay in sync with the Attribute bitcode definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
d509d0b532ec2358b3f341d4a4cd1411cb8b5db2 |
|
28-May-2012 |
Chris Lattner <sabre@nondot.org> |
switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
55fb5bcc62804f7696b98f9f8d987da515dac66a |
|
08-Feb-2012 |
Kostya Serebryany <kcc@google.com> |
Don't use static CTORs for the Attributes constants, while still keeping the class type-safe git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
164b86b4399559e45fab7846f1e3e09119cab4e2 |
|
20-Jan-2012 |
Kostya Serebryany <kcc@google.com> |
Extend Attributes to 64 bits Problem: LLVM needs more function attributes than currently available (32 bits). One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc). Solution: - extend the Attributes from 32 bits to 64-bits - wrap the object into a class so that unsigned is never erroneously used instead - change "unsigned" to "Attributes" throughout the code, including one place in clang. - the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking. - the class has "safe operator bool()" to support the common idiom: if (Attributes attr = getAttrs()) useAttrs(attr); - The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls - Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work. - Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit. Tested: "make check" on Linux (32-bit and 64-bit) and Mac (10.6) built/run spec CPU 2006 on Linux with clang -O2. This change will break clang build in lib/CodeGen/CGCall.cpp. The following patch will fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
25456ef74ca7ac9bf46451f28d995f785e2596de |
|
03-Oct-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add the returns_twice attribute to LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
3a3465b71db858723988f61d72b7135e6dff329b |
|
15-Jun-2011 |
John McCall <rjmccall@apple.com> |
Add a new function attribute, nonlazybind, which inhibits lazy-loading optimizations when emitting calls to the function; instead those calls may use faster relocations which require the function to be immediately resolved upon loading the dynamic object featuring the call. This is useful when it is known that the function will be called frequently and pervasively and therefore there is no merit in delaying binding of the function. Currently only implemented for x86-64, where it turns into a call through the global offset table. Patch by Dan Gohman, who assures me that he's going to add LangRef documentation for this once it's committed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
52f6a4de951edf890c3988c92318b13e45fd3b85 |
|
25-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix some issues Duncan found in the previous commit. I kept the reference to the ABI since that is the common case. The -fno-asynchronous-unwind-tables option is a user controlled way of breaking the ABI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
fc2bb8c4448fa884d79e437cc2d2627a7d7740a8 |
|
25-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Replace the -unwind-tables option with a per function flag. This is more LTO friendly as we can now correctly merge files compiled with or without -fasynchronous-unwind-tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
970bfcc7d8b9991430caa7ab33975617f3f4c40d |
|
25-Oct-2010 |
Charles Davis <cdavis@mines.edu> |
Add a new 'hotpatch' attribute. This attribute will insert a two-byte no-op instruction at the beginning of each function that has the attribute, allowing the function to be easily hooked and/or patched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
429c75b8654b0d1069f1897375f5801a4c5de017 |
|
25-Sep-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Avoid warnings about implicit conversions to `bool' in MSVC. This time for real. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
32d2c5de6419a4f8dec260d9ab557004534e0970 |
|
23-Sep-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Avoid warnings about conversions to `bool' in MS compilers. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
89e124b6bea174978a8c9b8472731cf0dbf18511 |
|
21-Feb-2010 |
Charles Davis <cdavis@mines.edu> |
Reduce size of 'StackAlignment' field from 5 to 3 bits. Seriously, who needs a 2GB-aligned stack anyway? 256 bytes is plenty. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
1e063d14df0f182626ebdd7ac7f32405aa754e03 |
|
12-Feb-2010 |
Charles Davis <cdavis@mines.edu> |
Add a new function attribute, 'alignstack'. It will indicate (when the backends implement support for it) that the stack should be forcibly realigned in the prologue (and the process reversed in the epilogue). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
570a4a5d9ca31f276a67502d1e0533d59d331fea |
|
06-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reintroduce the InlineHint function attribute. This time it's for real! I am going to hook this up in the frontends as well. The inliner has some experimental heuristics for dealing with the inline hint. When given a -respect-inlinehint option, functions marked with the inline keyword are given a threshold just above the default for -O3. We need some experiments to determine if that is the right thing to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
606a1d1f5984f20e79b0d2a2d38c121907426810 |
|
15-Jan-2010 |
Eric Christopher <echristo@apple.com> |
Remove the InlineHint attribute. There are no current or planned users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
710632d07b13609444626367bebd34c0af3acb6a |
|
04-Jan-2010 |
Mikhail Glushenkov <foldr@codedgers.com> |
Fix the Emacs mode string. Also trailing whitespace & 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
de86d473fcc18fe769fa9edb075984880ef1a015 |
|
26-Aug-2009 |
Dale Johannesen <dalej@apple.com> |
Add an 'inline hint' attribute to represent source 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
/external/llvm/include/llvm/Attributes.h
|
c5ec8a78ea898087ad361e5b755f74a76150e5fd |
|
17-Jul-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add support for naked functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
d6de30ceea69ee9ce6dded4bb3ae5881861cb090 |
|
11-Jun-2009 |
Duncan Sands <baldrick@free.fr> |
Cosmetic changes to parameter attribute verification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
578efa920abd218ba75a0fb3c9b8398f4c0a774b |
|
05-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Add new function attribute - noimplicitfloat 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
/external/llvm/include/llvm/Attributes.h
|
d18e31ae17390d9c6f6cf93d18badf962452031d |
|
05-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Add new function attribute - noredzone. 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
/external/llvm/include/llvm/Attributes.h
|
033ff38411ffb429fad9d99295c71908eacb4b41 |
|
31-Dec-2008 |
Chris Lattner <sabre@nondot.org> |
Add a new Attribute::getAlignmentFromAttrs method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
f23d0d392ab47e191e1bbd17dc7487b9d461485c |
|
19-Dec-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Resubmit support for the 'nocapture' attribute. 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
/external/llvm/include/llvm/Attributes.h
|
6fa311c2338391b0f332c062b3140c6df139a949 |
|
16-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
382da62ec274feead85e7be364ab5d4fd0281d98 |
|
15-Dec-2008 |
Nick Lewycky <nicholas@mxc.ca> |
It turns out that "align 1" and unaligned are different. Add a bias to the 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
/external/llvm/include/llvm/Attributes.h
|
e642658480ed0c9cde023a165edca237ba90bd31 |
|
15-Dec-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Introducing nocapture, a parameter attribute for pointers to indicate that the 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
/external/llvm/include/llvm/Attributes.h
|
e9e6bdf27fca46dc9eca2ebdf73e03747d1859ab |
|
13-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement stack protectors as function attributes: "ssp" and "sspreq". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
65ac2fa8802676a5f7b2402f92dea6129d1f1903 |
|
16-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix whitespace in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
f5ff0cf03a5a1bb0ec7fb4809814faef53b9a35c |
|
14-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
3afba0ae416acd62aca0ddda454538fbe99d1571 |
|
03-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Fix function attribute verification check. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
6d1b8a5911b98b49c3a17874f8a9cc3dfa9fa6f0 |
|
03-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Verify function attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
7c31085b1c95290c834bc3d8d25d7b3b61b90c7b |
|
02-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Attributes noinline alwaysinline are incompatible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
0b3c079cd59f7d0d664ddf6365e6466704c912f6 |
|
27-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add missing #include for asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
19c874638d9478a5d5028854817a5ee72293bb2b |
|
27-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Now Attributes are divided in three groups - 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
/external/llvm/include/llvm/Attributes.h
|
0598866c052147c31b808391f58434ce3dbfb838 |
|
25-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Large mechanical patch. 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
/external/llvm/include/llvm/Attributes.h
|
e3d76d37e972d6f7b1335a3944ce31ae8f4cd3c9 |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
s/ParamAttrsWithIndex/FnAttributeWithIndex/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
1e480009662c4ec56e16fc5b44fb9affef98bcbc |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
s/ParamAttributeListImpl/AttributeListImpl/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
20bcaff6a7f93a9894f7233c449b016bafe93b26 |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Put FN_NOTE_AlwaysInline and others in FnAttr namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
dd4924c564c7a661b78b604ebf16dfef7aa62b35 |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Move FN_NOTE_AlwaysInline and other out of ParamAttrs namespace. 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
/external/llvm/include/llvm/Attributes.h
|
06117b65984487169cfd80c8349baf603d1879d5 |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|
eaf42abab6d465c38891345d999255871cf03943 |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
s/ParameterAttributes/Attributes/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Attributes.h
|