| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 175373
|
|
|
|
|
|
|
|
| |
Avoids malloc and is a lot denser. We lose iteration over target independent
attributes, but that's a strange interface anyways and didn't have any users
outside of AttrBuilder.
llvm-svn: 175370
|
|
|
|
| |
llvm-svn: 175252
|
|
|
|
|
|
| |
This reverts commit 82c101153fe7b35bce48781fab038e1b8f31a7bd.
llvm-svn: 175250
|
|
|
|
| |
llvm-svn: 175235
|
|
|
|
| |
llvm-svn: 175048
|
|
|
|
| |
llvm-svn: 175046
|
|
|
|
| |
llvm-svn: 174948
|
|
|
|
|
|
|
|
|
|
|
|
| |
This emits the attribute groups that are used by the functions. (It currently
doesn't print out return type or parameter attributes within attribute groups.)
Note: The functions still retrieve their attributes from the "old" bitcode
format (using the deprecated 'Raw()' method). This means that string attributes
within an attribute group will not show up during a disassembly. This will be
addressed in a future commit.
llvm-svn: 174867
|
|
|
|
| |
llvm-svn: 174864
|
|
|
|
| |
llvm-svn: 174848
|
|
|
|
| |
llvm-svn: 174834
|
|
|
|
| |
llvm-svn: 174824
|
|
|
|
|
|
|
| |
Fix the 'operator==' and 'hasAttributes' queries to take into account
target-dependent attributes.
llvm-svn: 174481
|
|
|
|
|
|
|
|
| |
This is useful when parsing an object that references multiple attribute groups.
N.B. If both builders have alignments specified, then they should match!
llvm-svn: 174480
|
|
|
|
|
|
| |
AttributeSet.
llvm-svn: 174467
|
|
|
|
|
|
|
|
| |
The stuff we're handing are all enums (Attribute::AttrKind), integers and
strings. Don't convert them to Constants, which is an unnecessary step here. The
rest of the changes are mostly mechanical.
llvm-svn: 174456
|
|
|
|
| |
llvm-svn: 174356
|
|
|
|
|
|
|
|
|
| |
Rename the PARAMATTR_CODE_ENTRY to PARAMATTR_CODE_ENTRY_OLD. It will be replaced
by another encoding. Keep around the current LLVM attribute encoder/decoder
code, but move it to the bitcode directories so that no one's tempted to use
them.
llvm-svn: 174335
|
|
|
|
| |
llvm-svn: 174251
|
|
|
|
|
|
|
| |
Use the AttributeSet's iterators in AttrBuilder::hasAttributes() when
determining of the intersection of the AttrBuilder and AttributeSet is non-null.
llvm-svn: 174250
|
|
|
|
|
|
| |
This Constant could be an aggregate to represent multiple values.
llvm-svn: 174228
|
|
|
|
|
|
| |
functionality change.
llvm-svn: 174132
|
|
|
|
| |
llvm-svn: 174130
|
|
|
|
|
|
| |
attributes from an AttrBuilder.
llvm-svn: 174123
|
|
|
|
|
|
| |
in a nice way.
llvm-svn: 174120
|
|
|
|
|
|
| |
descriptive of what it actually is.
llvm-svn: 174116
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The AttrBuilder is for building a collection of attributes. The Attribute object
holds only one attribute. So it's not really useful for the Attribute object to
have a creator which takes an AttrBuilder.
This has two fallouts:
1. The AttrBuilder no longer holds its internal attributes in a bit-mask form.
2. The attributes are now ordered alphabetically (hence why the tests have changed).
llvm-svn: 174110
|
|
|
|
|
|
|
|
|
|
| |
Attributes that are strings are typically target-dependent attributes. They are
of this form in the IR:
"attr"
"attr" = "val"
llvm-svn: 174090
|
|
|
|
|
|
|
| |
That function doesn't make sense anymore because there's only one attribute per
Attribute object now.
llvm-svn: 174044
|
|
|
|
|
|
|
|
| |
Attribute::hasAttribute() private."
It broke many hosts to crash.
llvm-svn: 174035
|
|
|
|
|
|
|
|
| |
The Attribute::hasAttributes() is kind of meaningless since an Attribute can
have only one attribute. And we would rather people use the 'operator=='
instead of Attribute::hasAttribute().
llvm-svn: 174026
|
|
|
|
|
|
|
|
|
| |
--- Reverse-merging r174010 into '.':
U include/llvm/IR/Attributes.h
U lib/IR/Verifier.cpp
U lib/IR/Attributes.cpp
llvm-svn: 174012
|
|
|
|
|
|
|
|
| |
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
|