diff options
-rw-r--r-- | include/llvm/Metadata.h | 17 | ||||
-rw-r--r-- | lib/AsmParser/LLParser.cpp | 3 | ||||
-rw-r--r-- | lib/VMCore/Metadata.cpp | 13 |
3 files changed, 12 insertions, 21 deletions
diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h index 54af723..7977c82 100644 --- a/include/llvm/Metadata.h +++ b/include/llvm/Metadata.h @@ -185,31 +185,26 @@ class NamedMDNode : public MetadataBase, public ilist_node<NamedMDNode> { friend class LLVMContextImpl; Module *Parent; - StringRef Name; SmallVector<WeakMetadataVH, 4> Node; typedef SmallVectorImpl<WeakMetadataVH>::iterator elem_iterator; protected: - explicit NamedMDNode(const char *N, unsigned NameLength, - MetadataBase*const* Vals, unsigned NumVals, - Module *M = 0); + explicit NamedMDNode(const Twine &N, MetadataBase*const* Vals, + unsigned NumVals, Module *M = 0); public: - static NamedMDNode *Create(const char *N, unsigned NamedLength, - MetadataBase*const*MDs, unsigned NumMDs, - Module *M = 0) { - return new NamedMDNode(N, NamedLength, MDs, NumMDs, M); + static NamedMDNode *Create(const Twine &N, MetadataBase*const*MDs, + unsigned NumMDs, Module *M = 0) { + return new NamedMDNode(N, MDs, NumMDs, M); } typedef SmallVectorImpl<WeakMetadataVH>::const_iterator const_elem_iterator; - StringRef getName() const { return Name; } - /// getParent - Get the module that holds this named metadata collection. inline Module *getParent() { return Parent; } inline const Module *getParent() const { return Parent; } void setParent(Module *M) { Parent = M; } - Value *getElement(unsigned i) const { + MetadataBase *getElement(unsigned i) const { return Node[i]; } diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index 2a2192c..8b3b832 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -440,8 +440,7 @@ bool LLParser::ParseNamedMetadata() { if (ParseToken(lltok::rbrace, "expected end of metadata node")) return true; - NamedMDNode::Create(Name.c_str(), Name.length(), - Elts.data(), Elts.size(), M); + NamedMDNode::Create(Name, Elts.data(), Elts.size(), M); return false; } diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index 2f6c153..cb1dd65 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -33,15 +33,12 @@ void MDNode::Profile(FoldingSetNodeID &ID) const { //===----------------------------------------------------------------------===// //NamedMDNode implementation // -NamedMDNode::NamedMDNode(const char *N, unsigned NameLength, - MetadataBase*const* MDs, unsigned NumMDs, - Module *M) - : MetadataBase(Type::MetadataTy, Value::NamedMDNodeVal), - Name(N, NameLength) { +NamedMDNode::NamedMDNode(const Twine &N, MetadataBase*const* MDs, + unsigned NumMDs, Module *ParentModule) + : MetadataBase(Type::MetadataTy, Value::NamedMDNodeVal) { setName(N); for (unsigned i = 0; i != NumMDs; ++i) Node.push_back(WeakMetadataVH(MDs[i])); - - if (M) - M->getNamedMDList().push_back(this); + if (ParentModule) + ParentModule->getNamedMDList().push_back(this); } |