diff options
author | Devang Patel <dpatel@apple.com> | 2010-01-12 18:57:56 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-01-12 18:57:56 +0000 |
commit | d77fdba5737ee71b63681160fba5b2fc200583f4 (patch) | |
tree | 439a3bebb3a363451b240d917cd313ed5e1a9270 | |
parent | 26028f27ddd132b3284943e11aca130c2911abc4 (diff) | |
download | llvm-d77fdba5737ee71b63681160fba5b2fc200583f4.tar.gz llvm-d77fdba5737ee71b63681160fba5b2fc200583f4.tar.bz2 llvm-d77fdba5737ee71b63681160fba5b2fc200583f4.tar.xz |
Use Twine, instead of StringRef, for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93249 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Metadata.h | 6 | ||||
-rw-r--r-- | lib/VMCore/Metadata.cpp | 23 |
2 files changed, 21 insertions, 8 deletions
diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h index f490bad2cc..194de47ffe 100644 --- a/include/llvm/Metadata.h +++ b/include/llvm/Metadata.h @@ -194,10 +194,10 @@ class NamedMDNode : public Value, public ilist_node<NamedMDNode> { void setParent(Module *M) { Parent = M; } protected: - explicit NamedMDNode(LLVMContext &C, StringRef N, MDNode*const *Vals, + explicit NamedMDNode(LLVMContext &C, const Twine &N, MDNode*const *Vals, unsigned NumVals, Module *M = 0); public: - static NamedMDNode *Create(LLVMContext &C, StringRef N, + static NamedMDNode *Create(LLVMContext &C, const Twine &N, MDNode *const *MDs, unsigned NumMDs, Module *M = 0) { return new NamedMDNode(C, N, MDs, NumMDs, M); @@ -229,7 +229,7 @@ public: void addOperand(MDNode *M); /// setName - Set the name of this named metadata. - void setName(StringRef Name); + void setName(const Twine &NewName); /// getName - Return a constant reference to this named metadata's name. StringRef getName() const; diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index 5ea7bd45e5..e6a962bbca 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -18,6 +18,7 @@ #include "llvm/Instruction.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/StringMap.h" +#include "llvm/ADT/SmallString.h" #include "SymbolTableListTraitsImpl.h" #include "llvm/Support/ValueHandle.h" using namespace llvm; @@ -263,7 +264,7 @@ static SmallVector<WeakVH, 4> &getNMDOps(void *Operands) { return *(SmallVector<WeakVH, 4>*)Operands; } -NamedMDNode::NamedMDNode(LLVMContext &C, StringRef N, +NamedMDNode::NamedMDNode(LLVMContext &C, const Twine &N, MDNode *const *MDs, unsigned NumMDs, Module *ParentModule) : Value(Type::getMetadataTy(C), Value::NamedMDNodeVal), Parent(0) { @@ -322,11 +323,23 @@ void NamedMDNode::dropAllReferences() { } /// setName - Set the name of this named metadata. -void NamedMDNode::setName(StringRef N) { - assert (!N.empty() && "Invalid named metadata name!"); - Name = N.str(); +void NamedMDNode::setName(const Twine &NewName) { + assert (!NewName.isTriviallyEmpty() && "Invalid named metadata name!"); + + SmallString<256> NameData; + NewName.toVector(NameData); + + const char *NameStr = NameData.data(); + unsigned NameLen = NameData.size(); + + StringRef NameRef = StringRef(NameStr, NameLen); + // Name isn't changing? + if (getName() == NameRef) + return; + + Name = NameRef.str(); if (Parent) - Parent->getMDSymbolTable().insert(N, this); + Parent->getMDSymbolTable().insert(NameRef, this); } /// getName - Return a constant reference to this named metadata's name. |