Add a context so that once we uniquify strings we can access them easily.

llvm-svn: 170615
This commit is contained in:
Bill Wendling 2012-12-19 23:55:43 +00:00
parent 567fcd7da2
commit 6ad6c3b1c2
2 changed files with 6 additions and 3 deletions

View File

@ -382,7 +382,7 @@ AttributeSet AttributeSet::get(LLVMContext &C,
// If we didn't find any existing attributes of the same shape then
// create a new one and insert it.
if (!PA) {
PA = new AttributeSetImpl(Attrs);
PA = new AttributeSetImpl(C, Attrs);
pImpl->AttrsLists.InsertNode(PA, InsertPoint);
}

View File

@ -20,6 +20,8 @@
namespace llvm {
class LLVMContext;
class AttributesImpl : public FoldingSetNode {
uint64_t Bits; // FIXME: We will be expanding this.
public:
@ -50,10 +52,11 @@ class AttributeSetImpl : public FoldingSetNode {
void operator=(const AttributeSetImpl &) LLVM_DELETED_FUNCTION;
AttributeSetImpl(const AttributeSetImpl &) LLVM_DELETED_FUNCTION;
public:
LLVMContext &Context;
SmallVector<AttributeWithIndex, 4> Attrs;
AttributeSetImpl(ArrayRef<AttributeWithIndex> attrs)
: Attrs(attrs.begin(), attrs.end()) {}
AttributeSetImpl(LLVMContext &C, ArrayRef<AttributeWithIndex> attrs)
: Context(C), Attrs(attrs.begin(), attrs.end()) {}
void Profile(FoldingSetNodeID &ID) const {
Profile(ID, Attrs);