diff options
author | Yaron Keren <yaron.keren@gmail.com> | 2015-03-17 09:51:17 +0000 |
---|---|---|
committer | Yaron Keren <yaron.keren@gmail.com> | 2015-03-17 09:51:17 +0000 |
commit | 1ee89fc432ded040593e59844efa621b4189a7c3 (patch) | |
tree | 14eac32a31a8d2e7c2180ff3ecaa3830aeb93c5d /llvm/lib/Support/Twine.cpp | |
parent | e458ab45774966c263817fdd63613faf28cf843c (diff) | |
download | llvm-1ee89fc432ded040593e59844efa621b4189a7c3.zip llvm-1ee89fc432ded040593e59844efa621b4189a7c3.tar.gz llvm-1ee89fc432ded040593e59844efa621b4189a7c3.tar.bz2 |
Teach Twine to support SmallString.
Enable removing .str() member calls for these frequent cases.
http://reviews.llvm.org/D6372
llvm-svn: 232465
Diffstat (limited to 'llvm/lib/Support/Twine.cpp')
-rw-r--r-- | llvm/lib/Support/Twine.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/Support/Twine.cpp b/llvm/lib/Support/Twine.cpp index 56ed964..d2cc75b 100644 --- a/llvm/lib/Support/Twine.cpp +++ b/llvm/lib/Support/Twine.cpp @@ -28,13 +28,6 @@ void Twine::toVector(SmallVectorImpl<char> &Out) const { print(OS); } -StringRef Twine::toStringRef(SmallVectorImpl<char> &Out) const { - if (isSingleStringRef()) - return getSingleStringRef(); - toVector(Out); - return StringRef(Out.data(), Out.size()); -} - StringRef Twine::toNullTerminatedStringRef(SmallVectorImpl<char> &Out) const { if (isUnary()) { switch (getLHSKind()) { @@ -72,6 +65,9 @@ void Twine::printOneChild(raw_ostream &OS, Child Ptr, case Twine::StringRefKind: OS << *Ptr.stringRef; break; + case Twine::SmallStringKind: + OS << *Ptr.smallString; + break; case Twine::CharKind: OS << Ptr.character; break; @@ -122,6 +118,10 @@ void Twine::printOneChildRepr(raw_ostream &OS, Child Ptr, OS << "stringref:\"" << Ptr.stringRef << "\""; break; + case Twine::SmallStringKind:
+ OS << "smallstring:\""
+ << *Ptr.smallString << "\"";
+ break;
case Twine::CharKind: OS << "char:\"" << Ptr.character << "\""; break; |