Bill Wendling
fbd38fe2e3
Add an enum for the return and function indexes into the AttrListPtr object. This gets rid of some magic numbers.
...
llvm-svn: 165924
2012-10-15 07:29:08 +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
Benjamin Kramer
6bbdf70818
Fix use after free when deleting attributes in a chained folding set.
...
Can't follow the intrusive linked list when the element is gone.
llvm-svn: 165898
2012-10-14 08:48:40 +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
Nadav Rotem
e10328737d
Add a new interface to allow IR-level passes to access codegen-specific information.
...
llvm-svn: 165665
2012-10-10 22:04:55 +00:00
Sean Silva
c399c753d9
Revert r165652: "Remove unnecessary RTTI from the build."
...
... Apparently the RTTI is still necessary for some reason.
llvm-svn: 165654
2012-10-10 20:50:36 +00:00
Sean Silva
9b72524e54
Remove unnecessary RTTI from the build.
...
llvm-svn: 165652
2012-10-10 20:27:20 +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
ff758fbd45
Use the attribute enums to query if a function has an attribute.
...
llvm-svn: 165551
2012-10-09 21:49:51 +00:00
Bill Wendling
8ccd6ca199
Use the attribute enums to query if a parameter has an attribute.
...
llvm-svn: 165550
2012-10-09 21:38:14 +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
9864a6557e
Inline the checks for mutually exclusive attributes since they're used in only one module.
...
llvm-svn: 165539
2012-10-09 20:11:19 +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
Micah Villmow
89021e4740
Add in the first step of the multiple pointer support. This adds in support to the data layout for specifying a per address space pointer size.
...
The next step is to update the optimizers to allow them to optimize the different address spaces with this information.
llvm-svn: 165505
2012-10-09 16:06:12 +00:00
Bill Wendling
908126a745
Move the 'ParameterOnly' variable inside of the Attributes class and make it a method.
...
llvm-svn: 165497
2012-10-09 09:51:10 +00:00
Bill Wendling
217c9b1916
Remove the now dead VarArgsIncompatible variable.
...
llvm-svn: 165496
2012-10-09 09:33:01 +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
Alexey Samsonov
3b861ec989
Fix PR14016.
...
DeadArgumentElimination pass can replace one LLVM function with another,
invalidating a pointer stored in debug info metadata entry for this function.
To fix this, we collect debug info descriptors for functions before
running a DeadArgumentElimination pass and "patch" pointers in metadata nodes
if we replace a function.
llvm-svn: 165490
2012-10-09 08:13:15 +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
bcd425b094
Remove some dead methods.
...
llvm-svn: 165485
2012-10-09 05:54:39 +00:00
Bill Wendling
375eb1f980
Remove more uses of the attribute enums by supplying appropriate query methods for them.
...
No functionality change intended.
llvm-svn: 165466
2012-10-09 00:28:54 +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
Micah Villmow
cdfe20b97f
Move TargetData to DataLayout.
...
llvm-svn: 165402
2012-10-08 16:38:25 +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
Micah Villmow
6d05e69d5a
Implement TargetData with the DataLayout class, this will allow LLVM projects to transition to DataLayout without loosing functionality.
...
llvm-svn: 165318
2012-10-05 17:02:14 +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
f3216e9536
Use method to query for attributes.
...
llvm-svn: 165304
2012-10-05 06:18:50 +00:00
Eli Friedman
c6c86c43f9
Make sure to generate the right kind of MDNode for enum forward declarations.
...
PR14029, LLVM part.
llvm-svn: 165288
2012-10-05 01:49:14 +00:00
Micah Villmow
b4faa15125
Rename the Target specific passes in the DataLayout class to be Target agnostic.
...
llvm-svn: 165270
2012-10-04 23:01:22 +00:00
Micah Villmow
ac34b5c9e5
Resubmit the copying of TargetData to DataLayout without any changes to the files, this should fix the problems and the changes to rename to DataLayout will come next.
...
llvm-svn: 165262
2012-10-04 22:08:14 +00:00