Quentin Colombet
5799e9f66c
Change ForceSizeOpt attribute into MinSize attribute
...
llvm-svn: 167020
2012-10-30 16:32:52 +00:00
Nadav Rotem
dbf4783634
Add the "ForceSizeOpt" attribute.
...
Patch by Quentin Colombet <qcolombet@apple.com>
Original description:
"""
The attached patch is the first step to have a better control on Oz related optimizations.
The Oz optimization level focuses on code size, thus I propose to add an attribute called ForceSizeOpt.
"""
llvm-svn: 166422
2012-10-22 17:33:31 +00:00
Bill Wendling
118a78b977
Cleanup whitespace.
...
llvm-svn: 166016
2012-10-16 06:10:45 +00:00
Bill Wendling
a529ade5a4
Cleanup whitespace.
...
llvm-svn: 166013
2012-10-16 06:01:44 +00:00
Bill Wendling
147ee8e34f
Have AttributesImpl defriend the Attributes class.
...
llvm-svn: 166012
2012-10-16 05:57:28 +00:00
Bill Wendling
3ffbac4432
Have AttrBuilder defriend the Attributes class.
...
llvm-svn: 166011
2012-10-16 05:55:09 +00:00
Bill Wendling
a517c30ed3
Put simple c'tors inline.
...
llvm-svn: 166008
2012-10-16 05:22:28 +00:00
Bill Wendling
50d27849f6
Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change.
...
llvm-svn: 165960
2012-10-15 20:35:56 +00:00
Bill Wendling
79d45dbbf9
Use a ::get method to create the attribute from Attributes::AttrVals instead of a constructor.
...
llvm-svn: 165923
2012-10-15 06:53:28 +00:00
Bill Wendling
8c3e65db52
Move the AttributesImpl header file into the VMCore directory so that it can be opaque.
...
llvm-svn: 165920
2012-10-15 05:40:12 +00:00
Bill Wendling
d079a446d7
Attributes Rewrite
...
Convert the internal representation of the Attributes class into a pointer to an
opaque object that's uniqued by and stored in the LLVMContext object. The
Attributes class then becomes a thin wrapper around this opaque
object. Eventually, the internal representation will be expanded to include
attributes that represent code generation options, etc.
llvm-svn: 165917
2012-10-15 04:46:55 +00:00
Bill Wendling
5ae76a379c
Remove dead methods.
...
llvm-svn: 165902
2012-10-14 09:21:44 +00:00
Bill Wendling
76d2cd2f60
Remove operator cast method in favor of querying with the correct method.
...
llvm-svn: 165899
2012-10-14 08:54:26 +00:00
Bill Wendling
a0f3e8d1cb
Don't use the new syntax just yet.
...
llvm-svn: 165897
2012-10-14 08:25:35 +00:00
Bill Wendling
2a3c1cca7d
Remove the bitwise AND operators from the Attributes class. Replace it with the equivalent from the builder class.
...
llvm-svn: 165896
2012-10-14 07:52:48 +00:00
Bill Wendling
722b26c0f2
Remove the bitwise assignment OR operator from the Attributes class. Replace it with the equivalent from the builder class.
...
llvm-svn: 165895
2012-10-14 07:35:59 +00:00
Bill Wendling
5c407ed3ab
Remove the bitwise OR operator from the Attributes class. Replace it with the equivalent from the builder class.
...
llvm-svn: 165894
2012-10-14 07:17:34 +00:00
Bill Wendling
a05b043c4a
Remove the bitwise XOR operator from the Attributes class. Replace it with the equivalent from the builder class.
...
llvm-svn: 165893
2012-10-14 06:56:13 +00:00
Bill Wendling
85a64c217f
Remove the bitwise NOT operator from the Attributes class. Replace it with the equivalent from the builder class.
...
llvm-svn: 165892
2012-10-14 06:39:53 +00:00
Bill Wendling
1fcc82225a
Decode the LLVM attributes from bitcode using the attributes builder.
...
llvm-svn: 165891
2012-10-14 04:10:01 +00:00
Bill Wendling
abd5ba2523
Use builder to create alignment attributes. Remove dead function.
...
llvm-svn: 165890
2012-10-14 03:58:29 +00:00
Bill Wendling
9d7ba8da47
Add the LLVM context to this c'tor. It will be needed in the future.
...
llvm-svn: 165687
2012-10-11 01:10:00 +00:00
Bill Wendling
13410278b6
Support a common idiom on how to build an Attributes class with a single attribute.
...
llvm-svn: 165686
2012-10-11 01:05:52 +00:00
Bill Wendling
7f1c5472b5
Cleanup. Get rid of now dead code.
...
llvm-svn: 165613
2012-10-10 08:03:34 +00:00
Bill Wendling
bbcdf4e2a5
Remove the final bits of Attributes being declared in the Attribute
...
namespace. Use the attribute's enum value instead. No functionality change
intended.
llvm-svn: 165610
2012-10-10 07:36:45 +00:00
Bill Wendling
b3723341f3
Revert r165547 to fix build.
...
llvm-svn: 165548
2012-10-09 20:56:48 +00:00
Bill Wendling
5abc0ef174
Use a single location for calculating the alignments.
...
llvm-svn: 165547
2012-10-09 20:55:16 +00:00
Bill Wendling
4caad41f1e
Use appropriate method calls to get the alignment value.
...
llvm-svn: 165541
2012-10-09 20:28:54 +00:00
Bill Wendling
7c04e04a75
Move the 'FunctionOnly' attributes thingy inside of the Attributes class.
...
llvm-svn: 165530
2012-10-09 19:01:18 +00:00
Bill Wendling
1c1b324ccf
Use the enum value of the attributes when removing them from the attributes builder.
...
llvm-svn: 165495
2012-10-09 09:17:28 +00:00
Bill Wendling
93f70b78fd
Use the enum value of the attributes when adding them to the attributes builder.
...
llvm-svn: 165494
2012-10-09 09:11:20 +00:00
Bill Wendling
c9b22d735a
Create enums for the different attributes.
...
We use the enums to query whether an Attributes object has that attribute. The
opaque layer is responsible for knowing where that specific attribute is stored.
llvm-svn: 165488
2012-10-09 07:45:08 +00:00
Bill Wendling
70f3917b0e
Convert to using the Attributes::Builder interface.
...
llvm-svn: 165465
2012-10-09 00:01:21 +00:00
Bill Wendling
c6daefad7e
Use the Attributes::Builder to build the attributes in the parser.
...
llvm-svn: 165458
2012-10-08 23:27:46 +00:00
Bill Wendling
68d240175b
Convert the LLVM parser over to using the new Attributes::Builder to build its
...
attributes objects.
llvm-svn: 165436
2012-10-08 22:20:14 +00:00
Bill Wendling
73ea2defb2
Begin the transition to using the AttributesImpl object for the Attributes ivar.
...
Start using the AttributesImpl object to hold the value of the attributes. All
queries go through the interfaces now.
This has one unfortunate consequence. I needed to move the AttributesImpl.h file
into include/llvm. But this is only temporary! Otherwise, the changes needed to
support this would be too large.
llvm-svn: 165433
2012-10-08 21:47:17 +00:00
Bill Wendling
be7c6f23a2
Move more methods out-of-line. This is in preparation for changing the internal
...
contents of the Attributes class over to an AttributesImpl.
llvm-svn: 165373
2012-10-07 08:55:05 +00:00
Bill Wendling
abf3febad3
Move methods out-of-line.
...
The internal representation of the Attributes class will be opaque. All of the
query methods will need to query the opaque class. Therefore, these methods need
to be out-of-line.
No functionality change intended.
llvm-svn: 165305
2012-10-05 06:44:41 +00:00
Bill Wendling
e38b804d07
Initial commit for the AttributesImpl class.
...
This opaque class will contain all of the attributes. All attribute queries will
go through this object. This object will also be uniqued in the LLVMContext.
Currently not used, so no implementation change.
llvm-svn: 164722
2012-09-26 21:07:29 +00:00
Bill Wendling
eb33723ace
Move Attribute::typeIncompatible inside of the Attributes class.
...
llvm-svn: 164629
2012-09-25 20:38:59 +00:00
Bill Wendling
9be7759ee1
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class. Now with fix.
...
llvm-svn: 164370
2012-09-21 15:26:31 +00:00
Bill Wendling
c727bacb38
Revert r164308 to fix buildbots.
...
llvm-svn: 164309
2012-09-20 16:59:57 +00:00
Bill Wendling
abac66150c
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class.
...
llvm-svn: 164308
2012-09-20 16:27:05 +00:00
Bill Wendling
b4e211cd19
Remove more bare uses of the different Attribute enums.
...
llvm-svn: 164307
2012-09-20 15:20:36 +00:00
Bill Wendling
de74cf50da
Make the 'getAsString' function a method of the Attributes class.
...
llvm-svn: 164305
2012-09-20 14:44:42 +00:00
Bill Wendling
3bef2dd5f9
Convert some attribute existence queries over to use the predicate methods.
...
llvm-svn: 164268
2012-09-19 23:54:18 +00:00
Craig Topper
b1d83e8c72
Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
...
llvm-svn: 164090
2012-09-18 02:01:41 +00:00
Chad Rosier
38d24e6751
[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.
llvm-svn: 163174
2012-09-04 22:29:45 +00:00
Chad Rosier
09f74b5517
[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.
llvm-svn: 161641
2012-08-10 00:00:22 +00:00
Chris Lattner
3cb6f83ebb
switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients.
...
llvm-svn: 157556
2012-05-28 01:47:44 +00:00