History log of /external/llvm/include/llvm/IR/Attributes.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/include/llvm/IR/Attributes.h
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/include/llvm/IR/Attributes.h
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/IR/Attributes.h
118a0659ab8a4d0e0af343b88e5fa71a5c1eb6a6 24-Sep-2013 Reid Kleckner <reid@kleckner.net> Explicitly request unsigned enum types when desired

The underlying type of all plain enums in MSVC is 'int', even if the
enumerator contains large 32-bit unsigned values or values greater than
UINT_MAX. The only way to get a large or unsigned enum type is to
request it explicitly with the C++11 strong enum types feature.

However, since LLVM isn't C++11 yet, I had to add a conditional
LLVM_ENUM_INT_TYPE to Compiler.h to control its usage.

The motivating true positive for this change is compiling PointerIntPair
with MSVC for win64. The PointerIntMask value is supposed to be pointer
sized value of all ones with some low zeros. Instead, it's truncated to
32-bits! We are only saved later because it is sign extended back in
the AND with int64_t, and we happen to want all ones.

This silences lots of -Wmicrosoft warnings during a clang self-host
targeting Windows.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
5768bb8d77892926dff0d078b1fb08c14ea791f3 23-Aug-2013 Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> Add function attribute 'optnone'.

This function attribute indicates that the function is not optimized
by any optimization or code generator passes with the
exception of interprocedural optimization passes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
9e2ef7780b91d8e01a9ab172f80272fc94f6956b 25-Jul-2013 Bill Wendling <isanbard@gmail.com> Add a way to add a kind-value string pair to an attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
2253a2f52f3c46ae75cd05f5885acb987bd1d6b6 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> Added support for the Builtin attribute.

The Builtin attribute is an attribute that can be placed on function call site that signal that even though a function is declared as being a builtin,

rdar://problem/13727199

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
77226a03dca98e6237c1068f2652fe41bea7b687 24-May-2013 Diego Novillo <dnovillo@google.com> Add a new function attribute 'cold' to functions.

Other than recognizing the attribute, the patch does little else.
It changes the branch probability analyzer so that edges into
blocks postdominated by a cold function are given low weight.

Added analysis and code generation tests. Added documentation for the
new attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
aae0298921d946a64385052ce6e678d36f936fb3 01-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Now that the underlying issue is fixed, revert r180750 and r180722.

The cause of the windows failures was fixed by r180791. Revert to the state
after Sabre's original revert.

Original message:

revert r179735, it has no testcases, and doesn't really make sense.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
76f103e02164d27b41bd92a9767c7012482ba31a 30-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Change getSlotIndex to return unsigned.

The actual storage was already using unsigned, but the interface was using
uint64_t. This is wasteful on 32 bits and looks to be the root causes of
a miscompilation on Windows where a value was being sign extended to 64bits
to compare with the result of getSlotIndex.

Patch by Pasi Parviainen!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
f2e83499fcc41484cb5dac073c4fe87525926d2b 29-Apr-2013 Reid Kleckner <reid@kleckner.net> Revert "revert r179735, it has no testcases, and doesn't really make sense."

This un-reverts r179735 and reverts commit r180574.

This fixes assertion failures for me locally and should fix the failures
on Windows reported widely on llvm-dev. We should check if the bots
caught this and if so why not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
29fce9ad39636d38f43add5d7c23e83d9d1cc249 25-Apr-2013 Chris Lattner <sabre@nondot.org> revert r179735, it has no testcases, and doesn't really make sense.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
456ca048af35163b9f52187e92a23ee0a9f059e8 20-Apr-2013 Stephen Lin <stephenwlin@gmail.com> Add CodeGen support for functions that always return arguments via a new parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
a88a016f2d99488f2eff0eb6be256f2f43602afa 18-Apr-2013 Bill Wendling <isanbard@gmail.com> Make the TargetIndependent flag have the right boolean value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8a6a7bb6a601061031cddd77129532a3b467300b 18-Apr-2013 Bill Wendling <isanbard@gmail.com> Cleanup patch:

Semantics of parameters named Index and Idx were inconsistent between
"include/llvm/IR/Attributes.h", "lib/IR/AttributeImpl.h" and
"lib/IR/Attributes.cpp": sometimes these were fixed 1-based indexes of IR
parameters (or AttributeSet::ReturnIndex for IR return values or
AttributeSet::FunctionIndex for IR functions), other times they were the
internal slot for storage in the underlying AttributeSetImpl. I renamed usage of
the former to "Index" and usage of the latter to "Slot" ("Slot" was already
being used consistently for the latter in a subset of cases)

Patch by Stephen Lin!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
bb1b63c48397a3bac5d00f2ac9d33cc14efd714c 18-Apr-2013 Bill Wendling <isanbard@gmail.com> This patch addresses two cleanup issues:

1. Verify::VerifyParameterAttrs in "lib/IR/Verifier.cpp" and
AttrBuilder::removeFunctionOnlyAttrs in "lib/IR/Attributes.cpp" (only called
by Verify::VerifyFunctionAttrs) separately maintained a list of function-only
attribute types. I've consolidated the logic into a new function used for
both cases in "lib/IR/Verifier.cpp", so this logic is in one place (other
than the AsmParser front-end)

2. Various functions in "lib/IR/Verifier.cpp" passed AttributeSet around by
reference needlessly, as it's just a handle to an immutable pimpl body.

Patch by Stephen Lin!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
b1ac6e617291e2a628bc460933bde97c73466cb0 18-Apr-2013 Bill Wendling <isanbard@gmail.com> Add an option `-enable-old-style-attr-syntax' to print out function attributes in the "old" style.

It's sometimes beneficial to emit a testcase with the old style attribute
syntax. Allow someone to do this.
<rdar://problem/13563209>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
72f0cdea4160ec3a5f5123831a57f96d3a95456c 18-Mar-2013 Benjamin Kramer <benny.kra@googlemail.com> Remove default copy ctor/assignment, makes AttributeSet trivially copyable.

And enables SmallVector's pod optimizations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
9106f73246168fb30d26fb14085c0b3d81fcd350 13-Mar-2013 Reed Kotler <rkotler@mips.com> Add some additonal attribute helper functions. Test will be on follow
up putback to clang for mips16.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8eec41fc778e99d42172a7f6de76faa43a6d8847 26-Feb-2013 Kostya Serebryany <kcc@google.com> Unify clang/llvm attributes for asan/tsan/msan (LLVM part)

These are two related changes (one in llvm, one in clang).
LLVM:
- rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
- rename thread_safety => sanitize_thread
- rename no_uninitialized_checks -> sanitize_memory

CLANG:
- add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
- add __attribute__((no_sanitize_thread))
- add __attribute__((no_sanitize_memory))

for S in address thread memory
If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
set llvm attribute sanitize_S


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
143d46476cdcf5b88b9ee18ebd799e5820a2db0e 22-Feb-2013 Bill Wendling <isanbard@gmail.com> Implement the NoBuiltin attribute.

The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should
not treat the callee function as a built-in function. I.e., it shouldn't try to
replace that function with different code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
3f213e7b3a6829a154d4e8ceb7d8689b389bd5dc 18-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Futureproof AttrBuild if we ever have more than 64 attr enum values.

Currently we're at 34. Bitset should compile into virtually the same code as
uint64_t here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
886a7663c72cb04eaee58cb6997c394f5096a8b9 16-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Remove comma at the end of enum. Still my favourite C++11 feature.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
c835b8c30127d15599de2d614434d39a6cc3ae17 16-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Turn the enum attributes DenseSet in AttrBuilder into a set of bits.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
0e9d5d059c4aa959e9ef4dff011dbd38d45a1016 13-Feb-2013 Bill Wendling <isanbard@gmail.com> Add some accessor and query methods for retrieving Attribute objects and such.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
ad19d9c4228718b0ac167d0dfa013d14c3c9f135 13-Feb-2013 Bill Wendling <isanbard@gmail.com> Add a default empty string to the 'value' of a string attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
b29ce26ea60f7516c853318ffbfc107fde9ad897 11-Feb-2013 Bill Wendling <isanbard@gmail.com> Add support for printing out the attribute groups.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
ab39afa9d9b99c61842c8e3d0eb706bd16efdcf3 11-Feb-2013 Kostya Serebryany <kcc@google.com> [tsan/msan] adding thread_safety and uninitialized_checks attributes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
87de71cb9f12d874e88d4f314ab245985c1b36bc 10-Feb-2013 Bill Wendling <isanbard@gmail.com> Add 'empty' query methods to the builder and use them in the verifier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
85b3fbecdfe934ac7519a8831c4bd262cba99d12 10-Feb-2013 Bill Wendling <isanbard@gmail.com> Add accessor for the LLVMContext.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
16274258d16342a2f91aaa3690b78ce74e4105f1 09-Feb-2013 Bill Wendling <isanbard@gmail.com> Add a DenseMapInfo class for the AttributeSet.

We are going to place the AttributeSet into a DenseMap during assembly writing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
c3662eeaa4a1a4061fc6d5c81e3eed48c5d9da26 06-Feb-2013 Bill Wendling <isanbard@gmail.com> Improve comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
c342d9d345acdbd95577c7c6e9ce7d3a1bdb57bf 06-Feb-2013 Bill Wendling <isanbard@gmail.com> Add a 'StringRef' version of hasAttribute.

Fix the 'operator==' and 'hasAttributes' queries to take into account
target-dependent attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
85df6b43403d3ebf5d80023a85699c6fb254941a 06-Feb-2013 Bill Wendling <isanbard@gmail.com> Add methods to merge an AttrBuilder into another builder.

This is useful when parsing an object that references multiple attribute groups.

N.B. If both builders have alignments specified, then they should match!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
64754f499058b5dc748ea6d06a084af0ed539ec4 06-Feb-2013 Bill Wendling <isanbard@gmail.com> Add the target-dependent (string) attributes from the AttrBuilder to the AttributeSet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8c74ecfbddabe89e150abff4fdff0a27108874b9 05-Feb-2013 Bill Wendling <isanbard@gmail.com> Convert to storing the attribute's internals as enums, integers, and strings.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
ea59f896a672c2e1ef9f02277bce60257aa60989 05-Feb-2013 Bill Wendling <isanbard@gmail.com> Add target-dependent versions of addAttribute/removeAttribute to AttrBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
f9271ea159b97e2febedcf095c3c4122cb24d077 05-Feb-2013 Bill Wendling <isanbard@gmail.com> Initial cleanups of the param-attribute code in the bitcode reader/writer.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
fca0ed28c81a505b0b71605e8b59e4bb6daeda0e 02-Feb-2013 Bill Wendling <isanbard@gmail.com> Remove AttrBuilder::Raw().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
5a4041e7282ca1dba93fe1a97c8260c0ef621f5d 01-Feb-2013 Bill Wendling <isanbard@gmail.com> Change the AttributeImpl to hold a single Constant* for the values.

This Constant could be an aggregate to represent multiple values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
f715dbd263149efeb9c684dfdb0637cf84f94399 01-Feb-2013 Bill Wendling <isanbard@gmail.com> Remove one of the odious 'Raw' methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
16c4b3cf2943ae2327752cf3de39769d14cfcece 01-Feb-2013 Bill Wendling <isanbard@gmail.com> Add iterators to the AttributeSet class so that we can access the Attributes in a nice way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
39da078977ae98b6bf1c3c76a472ed24f5f2a2d2 01-Feb-2013 Bill Wendling <isanbard@gmail.com> s/AttrBuilder::addAttributes/AttrBuilder::addAttribute/g because that's more descriptive of what it actually is.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
169d5270751597aed4095ead00401a3374906147 01-Feb-2013 Bill Wendling <isanbard@gmail.com> Remove the AttrBuilder form of the Attribute::get creators.

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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
82aea644c6d2a21464958fe2e3a1cd0f6bfc82db 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove the Attribute::hasAttributes() function.

That function doesn't make sense anymore because there's only one attribute per
Attribute object now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
eddab1550ee10cce3bb26a26e88529cb19451aa3 31-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> Revert r174026, "Remove Attribute::hasAttributes() and make Attribute::hasAttribute() private."

It broke many hosts to crash.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
85238aae1a4b6ac67e16560a9855944191f3db5b 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove Attribute::hasAttributes() and make Attribute::hasAttribute() private.

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().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8ed701da9aa388c078cc6aecac2fe355974c90d2 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Make the AttrBuilder creation method of Attribute private so that people won't use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
b96129dd4856a5473c52daceaabdfd2262bd96f2 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Revert for now:

--- Reverse-merging r174010 into '.':
U include/llvm/IR/Attributes.h
U lib/IR/Verifier.cpp
U lib/IR/Attributes.cpp



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
c6077eff8b9963b59de21e5d1dfae7a6ea75da36 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove the AttrBuilder version of the Attribute::get function.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
73dee180c836270644dfa7d90f9c5ba877567999 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Make sure that the Attribute object represents one attribute only.

Several places were still treating the Attribute object as respresenting
multiple attributes. Those places now use the AttributeSet to represent
multiple attributes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
ac72eb264c3a8a15cda81aaead6adc8419058666 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove addRetAttributes and addFnAttributes, which aren't useful abstractions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
e74365462a39529ae48ef4d34ec76b4543b8ea29 31-Jan-2013 Bill Wendling <isanbard@gmail.com> Convert typeIncompatible to return an AttributeSet.

There are still places which treat the Attribute object as a collection of
attributes. I'm systematically removing them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
aa57893e84ba7a35948fcaa99812ba88e58f4797 30-Jan-2013 Bill Wendling <isanbard@gmail.com> Use the number of 'slots' in the AttributeSetImpl being 0 to indicate that the AttributeSet is empty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
6dc3781d44e56f0addf28b06232a50f3f9e6b1af 29-Jan-2013 Bill Wendling <isanbard@gmail.com> Add a couple of accessor methods to get the kind and values of an attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
606c8e36dfdd28fc589356addd3e2cbb89a32e4d 29-Jan-2013 Bill Wendling <isanbard@gmail.com> Convert getAttributes() to return an AttributeSetNode.

The AttributeSetNode contains all of the attributes. This removes one (hopefully
last) use of the Attribute class as a container of multiple attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8232ece5c1e57efe54342fb35610497d50bf894f 29-Jan-2013 Bill Wendling <isanbard@gmail.com> Use an AttrBuilder to generate the correct AttributeSet.

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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
817abdd8b055059e5930a15704b9f52da4236456 29-Jan-2013 Bill Wendling <isanbard@gmail.com> S'more small non-functional changes in comments and #includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
c22f4aa886443507f8406d30d118fdeeac6a8c6c 29-Jan-2013 Bill Wendling <isanbard@gmail.com> Reorder some functions and add comments. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
6bdbf061c353295669b6bfc271b948158602d1bc 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Try to appease some broken compilers by using 'unsigned' instead of 'uint64_t'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
87e10dfefa94f77937c37b0eb51095540d675cbc 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove the AttributeWithIndex class.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
19d815c04fde6b7b53c2b542813157edfa213842 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Mid-air collision. reapply r173656.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
98b92f3bf5770e02498549e24b3db75d5862c173 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Rewrite the removeAttr() method.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
49f6060f16aec4024d644a6ec4ddd3de9b3e8821 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Rewrite the addAttr() method.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
53ff78b2019e96e142986d19dd99f8dd563dc494 28-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> Revert r173646, "Use proper type for the index."

Unfortunately, msvc miscompiles it. Investigating.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
a9b9f0ad802ef6973534a9a247716e4a8e079635 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Use proper type for the index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
3e3e789aede6ec38d39c95d88ad4e8634d5a259b 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Use proper return type for attribute index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
d05204aea4977eaec25e96bc7605a7bb9d806fc0 28-Jan-2013 Bill Wendling <isanbard@gmail.com> Push the calculation of the 'Raw' attribute mask down into the implementation. It in turn uses the correct list for calculating the 'Raw' value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
2d5be6c313c0f9e23e56620fa8f8ae8d9b539bf0 27-Jan-2013 Bill Wendling <isanbard@gmail.com> Don't erase these methods. They're used during testing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
c08a5ef6581f2c7550e92d31f63cd65ec29c39e0 27-Jan-2013 Bill Wendling <isanbard@gmail.com> Add special 'get' methods to create an Attribute with an alignment. Also do some random cleanup. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
ec2589863b32da169240c4fa120ef1e3798615d4 27-Jan-2013 Bill Wendling <isanbard@gmail.com> s/AttrList/pImpl/g in AttributeSet. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
16f95669ec814d98ce28ad514df603c01d662ee8 27-Jan-2013 Bill Wendling <isanbard@gmail.com> Fix miscompile. Add back the use of the ArrayRef version of the ::get method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
08c11d302325b3715d77f4208d183c9b2a253b14 27-Jan-2013 Bill Wendling <isanbard@gmail.com> Rearrange some deckchairs. Moving the class before it's use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
09dda440ba6622b64713ef5f7d9531411e3589ea 27-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove dead methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
7d38c109aab8654e63e9071c7d948661f6b58433 27-Jan-2013 Bill Wendling <isanbard@gmail.com> Hide the method that creates an AttributeSet with AttributeWithIndexes.

This method will go away once AttributeWithIndex goes away. In the meantime,
hide it from general use.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
32a57958226e369f964a034da2ce7083a1a34297 26-Jan-2013 Bill Wendling <isanbard@gmail.com> Convert BuildLibCalls.cpp to using the AttributeSet methods instead of AttributeWithIndex.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
483bbd36b8b3f87073feea2e1096f188d0e735b8 26-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove dead method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8e47daf2858e980210f3e1f007036b24da342c29 26-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove some introspection functions.

The 'getSlot' function and its ilk allow introspection into the AttributeSet
class. However, that class should be opaque. Allow access through accessor
methods instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
e1f95db4803a48a30fc2a1d5868281a87a36fb85 25-Jan-2013 Bill Wendling <isanbard@gmail.com> Add an accessor method to get the slot's index. This will limit the use of AttributeWithIndex.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
bb08593980b16fbd9758da6ca4fa9c7964f2f926 24-Jan-2013 Bill Wendling <isanbard@gmail.com> Add a profile for uniquifying the AttributeSet with the AttributeSetNodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
3467e30edf63b6d8a8d446186674ba9e4b7885a9 24-Jan-2013 Bill Wendling <isanbard@gmail.com> Create a new class: AttributeSetNode.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
2915a691b9eecde508948d4300428860d1655175 23-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove dead methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
5ed3ac1185a52756a55ac043ede983a2ed4ea8f1 23-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove unused methods and ivars.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
114baee1fa017daefad2339c77b45b9ca3d79a41 23-Jan-2013 Bill Wendling <isanbard@gmail.com> Add the IR attribute 'sspstrong'.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
28d65722d6f283b327b5815914382077fe9c0ab4 23-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove the last of uses that use the Attribute object as a collection of 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8246df61f6de716acf1f8c64fac3c19970a2c174 23-Jan-2013 Bill Wendling <isanbard@gmail.com> Use the AttributeSet when removing multiple attributes. Use Attribute::AttrKind
when removing one attribute. This further encapsulates the use of the attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
defaca00b8087d452df2b783250a48a32658a910 22-Jan-2013 Bill Wendling <isanbard@gmail.com> More encapsulation work.

Use the AttributeSet when we're talking about more than one attribute. Add a
function that adds a single attribute. No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
e4e85f17564c28cd571dda30146c3f310521acf0 22-Jan-2013 Bill Wendling <isanbard@gmail.com> Add a new method that adds the AttributeSet at the given index. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
3fc4b96b503fa202411317684a2ba02e41e43072 21-Jan-2013 Bill Wendling <isanbard@gmail.com> Have AttributeSet::getRetAttributes() return an AttributeSet instead of Attribute.

This further restricts the use of the Attribute class to the Attribute family of
classes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
c5f1bc88a2eb7ad9ff924ca90cf88494e5f947b9 21-Jan-2013 Bill Wendling <isanbard@gmail.com> Make AttributeSet::getFnAttributes() return an AttributeSet instead of an 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
1b0c54f1c5dd61e56cb7cbc435fcb3319cff628f 18-Jan-2013 Bill Wendling <isanbard@gmail.com> Use AttributeSet accessor methods instead of Attribute accessor methods.

Further encapsulation of the Attribute object. Don't allow direct access to the
Attribute object as an aggregate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
956f13440a4aa0297606a4412f4aa091d931592a 18-Jan-2013 Bill Wendling <isanbard@gmail.com> Push some more methods down to hide the use of the Attribute class.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
674be02d525d4e24bc6943ed9274958c580bcfbc 10-Jan-2013 Jakub Staszak <kubastaszak@gmail.com> Fix include guards so they exactly match file names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
1db9b6957c2565a2322206bd5907530895f1c7ac 10-Jan-2013 Bill Wendling <isanbard@gmail.com> Revert s/Raw/getBitMask/g name change. This is possibly causing LTO test hangings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
a90a99a82b9c5c39fc6dbee9c266dcd7b107fe2f 07-Jan-2013 Bill Wendling <isanbard@gmail.com> Rough out a new c'tor for the AttrBuilder class.

This c'tor takes the AttributeSet class as the parameter. It will eventually
grab the attributes from the specified index and create a new attribute builder
with those attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
6f78fbbc630d2b86fb752574f5ad74473f57dfb1 05-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Switch the empty and tombstone key enumerators to not have explicit
values -- that's not required to fix the bug that was cropping up, and
the values selected made the enumeration's underlying type signed and
introduced some warnings. This fixes the -Werror build.

The underlying issue here was that the DenseMapInfo was casting values
completely outside the range of the underlying storage of the
enumeration to the enumeration's type. GCC went and "optimized" that
into infloops and other misbehavior. By providing designated special
values for these keys in the dense map, we ensure they are indeed
representable and that they won't be used for anything else.

It might be better to reuse None for the empty key and have the
tombstone share the value of the sentinel enumerator, but honestly
having 2 extra enumerators seemed not to matter and this seems a bit
simpler. I'll let Bill shuffle this around (or ask me to shuffle it
around) if he prefers it to look a different way.

I also made the switch a bit more clear (and produce a better assert)
that the enumerators are *never* going to show up and are errors if they
do.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
3a4779a9211281a1d0c27c97037342329035a185 05-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> IR/Attributes: Provide EmptyKey and TombstoneKey in part of enum, as workaround for gcc-4.4 take #2.

I will investigate, later, what was wrong. I am too tired for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
1bbd644301ed4d8a7efd4ceb15f71c56fa914f28 05-Jan-2013 Bill Wendling <isanbard@gmail.com> Add a method to create an AttributeSet from an AttrBuilder.

The Attribute class is eventually going to represent one attribute. So we need
this class to create the set of attributes. Add some iterator methods to the
builder to access its internal bits in a nice way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
0319888773b36dd61d7d2283cb9a26cac1e5abe8 05-Jan-2013 Bill Wendling <isanbard@gmail.com> Get rid of the 'Bits' mask in the attribute builder.

The bit mask thing will be a thing of the past. It's not extensible enough. Get
rid of its use here. Opt instead for using a vector to hold the attributes.

Note: Some of this code will become obsolete once the rewrite is further along.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
60507d53e7e8e6b0c537675f68204a93c3033de7 04-Jan-2013 Bill Wendling <isanbard@gmail.com> General cleanups.

* Remove dead methods.
* Use the 'operator==' method instead of 'contains', which isn't needed.
* Fix some comments.

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
22bd64173981bf1251c4b3bfc684207340534ba3 03-Jan-2013 Bill Wendling <isanbard@gmail.com> Try again to revert the bad patch. The tree was reverted for some unknown reason
before the last time.

--- Reverse-merging r171442 into '.':
U include/llvm/IR/Attributes.h
U lib/IR/Attributes.cpp
U lib/IR/AttributeImpl.h



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
ded28aca6195d2d8d3bcbb9cd6b1c2c34c0d9702 03-Jan-2013 Bill Wendling <isanbard@gmail.com> Revert patch. Something snuck in there that shouldn't be.

--- Reverse-merging r171441 into '.':
U include/llvm/IR/Attributes.h
U lib/IR/Attributes.cpp




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
8351a60d6da4f5cdab80753ad2266085a6fbf62a 03-Jan-2013 Bill Wendling <isanbard@gmail.com> Remove the 'contains' methods in favor of the 'operator==' method.

The 'operator==' method is a bit clearer and much less verbose for somethings
that should have only one value. Remove from the AttrBuilder for consistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
3ac03815e195a598fce50abdda440c9d2fae815e 03-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> Revert r171427, "An intermediate step in the Attributes rewrite."

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
278bac3fba5ae8ae620c961621493e6e2ad6f953 03-Jan-2013 Bill Wendling <isanbard@gmail.com> An intermediate step in the Attributes rewrite.

Modify the AttrBuilder class to store the attributes as a set instead of as a
bit mask. The Attribute class will represent only one attribute instead of a
collection of attributes.

This is the wave of the future!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/IR/Attributes.h