| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 173638
|
| |
|
|
|
|
| |
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: 173632
|
| |
|
|
| |
llvm-svn: 173631
|
| |
|
|
| |
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: 173434
|
| |
|
|
| |
llvm-svn: 173313
|
| |
|
|
| |
llvm-svn: 173311
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
when adding a single attribute to the function.
llvm-svn: 173210
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
Previously we tried to infer it from the bit width size, with an added
IsIEEE argument for the PPC/IEEE 128-bit case, which had a default
value. This default value allowed bugs to creep in, where it was
inappropriate.
llvm-svn: 173138
|
| |
|
|
|
|
| |
functional change.
llvm-svn: 173109
|
| |
|
|
| |
llvm-svn: 173108
|
| |
|
|
| |
llvm-svn: 173101
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
We weren't encoding boolean constants correctly due to modeling boolean as a
signed type & then sign extending an i1 up to a byte & getting 255.
llvm-svn: 172926
|
| |
|
|
| |
llvm-svn: 172854
|
| |
|
|
|
|
|
| |
Further encapsulation of the Attribute object. Don't allow direct access to the
Attribute object as an aggregate.
llvm-svn: 172853
|
| |
|
|
|
|
|
|
| |
Because the Attribute class is going to stop representing a collection of
attributes, limit the use of it as an aggregate in favor of using AttributeSet.
This replaces some of the uses for querying the function attributes.
llvm-svn: 172844
|
| |
|
|
| |
llvm-svn: 172659
|
| |
|
|
| |
llvm-svn: 172615
|
| |
|
|
|
|
|
|
|
|
|
| |
of a class. Emit static data member declarations and definitions
through correctly.
Part of PR14471.
Patch by Paul Robinson!
llvm-svn: 172590
|