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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170615 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2012-12-19 23:55:43 +00:00
parent fbf3b4a076
commit 5f93e2bee5
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);