| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
The AttrBuilder is there to build up multiple attributes. The Attribute class
represents only one attribute at a time. So remove this unnecessary builder
creator method.
llvm-svn: 174010
|
|
|
|
|
|
|
|
| |
Several places were still treating the Attribute object as respresenting
multiple attributes. Those places now use the AttributeSet to represent
multiple attributes.
llvm-svn: 174003
|
|
|
|
|
|
|
| |
There are still places which treat the Attribute object as a collection of
attributes. I'm systematically removing them.
llvm-svn: 173990
|
|
|
|
|
|
|
| |
It was creating a new AttrBuilder when we could just fill in the AttrBuilder
we're building.
llvm-svn: 173975
|
|
|
|
| |
llvm-svn: 173828
|
|
|
|
| |
llvm-svn: 173827
|
|
|
|
|
|
|
|
| |
behavior, though.
Don't touch I->first on the end iterator, I == E!
llvm-svn: 173804
|
|
|
|
|
|
|
| |
The AttributeSetNode contains all of the attributes. This removes one (hopefully
last) use of the Attribute class as a container of multiple attributes.
llvm-svn: 173761
|
|
|
|
|
|
|
|
|
| |
We no longer accept an encoded integer as representing all of the
attributes. Convert this via the AttrBuilder class into an AttributeSet with the
correct representation (an AttributeSetImpl that holds a list of Attribute
objects).
llvm-svn: 173750
|
|
|
|
|
|
| |
object that holds all of its attributes.
llvm-svn: 173742
|
|
|
|
| |
llvm-svn: 173738
|
|
|
|
| |
llvm-svn: 173733
|
|
|
|
| |
llvm-svn: 173725
|
|
|
|
|
|
|
| |
The AttributeWithIndex class exposed the interior structure of the AttributeSet
class. That was gross. Remove it and all of the code that relied upon it.
llvm-svn: 173722
|
|
|
|
| |
llvm-svn: 173661
|
|
|
|
|
|
|
|
|
|
| |
This now uses the AttributeSet object instead of the Attribute /
AttributeWithIndex objects. It's fairly simple now. It goes through all of the
subsets before the one we're modifying, adds them to the new set. It then adds
the modified subset (with the requested attributes removed). And then adds the
rest of the subsets.
llvm-svn: 173660
|
|
|
|
|
|
|
|
|
| |
This now uses the AttributeSet object instead of the Attribute /
AttributeWithIndex objects. It's fairly simple now. It goes through all of the
subsets before the one we're modifying, adds them to the new set. It then adds
the modified subset. And then adds the rest of the subsets.
llvm-svn: 173659
|
|
|
|
|
|
| |
Unfortunately, msvc miscompiles it. Investigating.
llvm-svn: 173656
|
|
|
|
| |
llvm-svn: 173646
|
|
|
|
|
|
| |
accessors instead.
llvm-svn: 173644
|
|
|
|
|
|
| |
accessors instead.
llvm-svn: 173642
|
|
|
|
|
|
|
|
|
|
| |
We want to remove AttributeWithIndex because it provides a non-encapsulated view
of the AttributeSetImpl object. Instead, use accessor methods and iterators.
Eventually, this code can be simplified because the Attribute object will hold
only one attribute instead of multiple attributes.
llvm-svn: 173641
|
|
|
|
| |
llvm-svn: 173640
|
|
|
|
| |
llvm-svn: 173639
|
|
|
|
|
|
| |
implementation. It in turn uses the correct list for calculating the 'Raw' value.
llvm-svn: 173637
|
|
|
|
|
|
| |
some random cleanup. No functionality change.
llvm-svn: 173635
|
|
|
|
| |
llvm-svn: 173628
|
|
|
|
|
|
| |
Also add some asserts.
llvm-svn: 173627
|
|
|
|
|
|
| |
attributes being passed in.
llvm-svn: 173618
|
|
|
|
| |
llvm-svn: 173613
|
|
|
|
| |
llvm-svn: 173611
|
|
|
|
|
|
| |
AttributeWithIndex.
llvm-svn: 173536
|
|
|
|
| |
llvm-svn: 173524
|
|
|
|
|
|
|
|
| |
The 'getSlot' function and its ilk allow introspection into the AttributeSet
class. However, that class should be opaque. Allow access through accessor
methods instead.
llvm-svn: 173522
|
|
|
|
| |
llvm-svn: 173499
|
|
|
|
|
|
| |
AttributeWithIndex.
llvm-svn: 173495
|
|
|
|
| |
llvm-svn: 173454
|
|
|
|
| |
llvm-svn: 173313
|
|
|
|
|
|
|
|
|
|
| |
This is a helper class for the AttributeSetImpl class. It holds a set of
attributes that apply to a single element: function, return type, or
parameter.
These are uniqued.
llvm-svn: 173310
|
|
|
|
|
|
| |
into the attribute implementation class.
llvm-svn: 173304
|
|
|
|
| |
llvm-svn: 173302
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SSPStrong applies a heuristic to insert stack protectors in these situations:
* A Protector is required for functions which contain an array, regardless of
type or length.
* A Protector is required for functions which contain a structure/union which
contains an array, regardless of type or length. Note, there is no limit to
the depth of nesting.
* A protector is required when the address of a local variable (i.e., stack
based variable) is exposed. (E.g., such as through a local whose address is
taken as part of the RHS of an assignment or a local whose address is taken as
part of a function argument.)
This patch implements the SSPString attribute to be equivalent to
SSPRequired. This will change in a subsequent patch.
llvm-svn: 173230
|
|
|
|
|
|
|
|
|
| |
attributes.
Collections of attributes are handled via the AttributeSet class now. This
finally frees us up to make significant changes to how attributes are structured.
llvm-svn: 173228
|
|
|
|
|
|
| |
when removing one attribute. This further encapsulates the use of the attributes.
llvm-svn: 173214
|
|
|
|
|
|
|
| |
Use the AttributeSet when we're talking about more than one attribute. Add a
function that adds a single attribute. No functionality change intended.
llvm-svn: 173196
|
|
|
|
|
|
| |
functional change.
llvm-svn: 173109
|
|
|
|
| |
llvm-svn: 173108
|
|
|
|
|
|
|
|
|
| |
Attribute.
This further restricts the use of the Attribute class to the Attribute family of
classes.
llvm-svn: 173098
|
|
|
|
|
|
|
|
|
| |
Attribute.
This is more code to isolate the use of the Attribute class to that of just
holding one attribute instead of a collection of attributes.
llvm-svn: 173094
|
|
|
|
| |
llvm-svn: 172854
|