summaryrefslogtreecommitdiff
path: root/lib/VMCore
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2012-12-19 23:55:43 +0000
committerBill Wendling <isanbard@gmail.com>2012-12-19 23:55:43 +0000
commit5f93e2bee5cee8c9ba2d12f5de9cb14d5b45be02 (patch)
treeb7c033271e8b8a4370486e09825f8dcc041226e4 /lib/VMCore
parentfbf3b4a07690751f72302757058ab0298dfb832e (diff)
downloadllvm-5f93e2bee5cee8c9ba2d12f5de9cb14d5b45be02.tar.gz
llvm-5f93e2bee5cee8c9ba2d12f5de9cb14d5b45be02.tar.bz2
llvm-5f93e2bee5cee8c9ba2d12f5de9cb14d5b45be02.tar.xz
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
Diffstat (limited to 'lib/VMCore')
-rw-r--r--lib/VMCore/Attributes.cpp2
-rw-r--r--lib/VMCore/AttributesImpl.h7
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/VMCore/Attributes.cpp b/lib/VMCore/Attributes.cpp
index 4b975238b2..9e24add8c8 100644
--- a/lib/VMCore/Attributes.cpp
+++ b/lib/VMCore/Attributes.cpp
@@ -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);
}
diff --git a/lib/VMCore/AttributesImpl.h b/lib/VMCore/AttributesImpl.h
index 0b3b4971f3..396634ed0f 100644
--- a/lib/VMCore/AttributesImpl.h
+++ b/lib/VMCore/AttributesImpl.h
@@ -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);