aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/Twine.cpp
diff options
context:
space:
mode:
authorYaron Keren <yaron.keren@gmail.com>2015-03-17 09:51:17 +0000
committerYaron Keren <yaron.keren@gmail.com>2015-03-17 09:51:17 +0000
commit1ee89fc432ded040593e59844efa621b4189a7c3 (patch)
tree14eac32a31a8d2e7c2180ff3ecaa3830aeb93c5d /llvm/lib/Support/Twine.cpp
parente458ab45774966c263817fdd63613faf28cf843c (diff)
downloadllvm-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.cpp14
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;