mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-12 05:56:28 +00:00
Revert accidentally committed r217107
"Don't treat 0 as a special value for int attributes." llvm-svn: 217110
This commit is contained in:
parent
24cc7c6b73
commit
d318de5814
@ -126,8 +126,7 @@ public:
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
||||
/// \brief Return a uniquified Attribute object.
|
||||
static Attribute get(LLVMContext &Context, AttrKind Kind);
|
||||
static Attribute get(LLVMContext &Context, AttrKind Kind, uint64_t Val);
|
||||
static Attribute get(LLVMContext &Context, AttrKind Kind, uint64_t Val = 0);
|
||||
static Attribute get(LLVMContext &Context, StringRef Kind,
|
||||
StringRef Val = StringRef());
|
||||
|
||||
@ -274,13 +273,13 @@ public:
|
||||
/// \brief Remove the specified attribute at the specified index from this
|
||||
/// attribute list. Since attribute lists are immutable, this returns the new
|
||||
/// list.
|
||||
AttributeSet removeAttribute(LLVMContext &C, unsigned Index,
|
||||
AttributeSet removeAttribute(LLVMContext &C, unsigned Index,
|
||||
Attribute::AttrKind Attr) const;
|
||||
|
||||
/// \brief Remove the specified attributes at the specified index from this
|
||||
/// attribute list. Since attribute lists are immutable, this returns the new
|
||||
/// list.
|
||||
AttributeSet removeAttributes(LLVMContext &C, unsigned Index,
|
||||
AttributeSet removeAttributes(LLVMContext &C, unsigned Index,
|
||||
AttributeSet Attrs) const;
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
@ -31,31 +31,12 @@ using namespace llvm;
|
||||
// Attribute Construction Methods
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind) {
|
||||
LLVMContextImpl *pImpl = Context.pImpl;
|
||||
FoldingSetNodeID ID;
|
||||
ID.AddInteger(Kind);
|
||||
|
||||
void *InsertPoint;
|
||||
AttributeImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
|
||||
|
||||
if (!PA) {
|
||||
// If we didn't find any existing attributes of the same shape then create a
|
||||
// new one and insert it.
|
||||
PA = new EnumAttributeImpl(Kind);
|
||||
pImpl->AttrsSet.InsertNode(PA, InsertPoint);
|
||||
}
|
||||
|
||||
// Return the Attribute that we found or created.
|
||||
return Attribute(PA);
|
||||
}
|
||||
|
||||
Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
|
||||
uint64_t Val) {
|
||||
LLVMContextImpl *pImpl = Context.pImpl;
|
||||
FoldingSetNodeID ID;
|
||||
ID.AddInteger(Kind);
|
||||
ID.AddInteger(Val);
|
||||
if (Val) ID.AddInteger(Val);
|
||||
|
||||
void *InsertPoint;
|
||||
AttributeImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
|
||||
@ -63,7 +44,10 @@ Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
|
||||
if (!PA) {
|
||||
// If we didn't find any existing attributes of the same shape then create a
|
||||
// new one and insert it.
|
||||
PA = new IntAttributeImpl(Kind, Val);
|
||||
if (!Val)
|
||||
PA = new EnumAttributeImpl(Kind);
|
||||
else
|
||||
PA = new IntAttributeImpl(Kind, Val);
|
||||
pImpl->AttrsSet.InsertNode(PA, InsertPoint);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user