Micro-optimize these functions in the case where they are not inlined.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91316 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2009-12-14 19:32:31 +00:00
parent a623f5a58d
commit a4f8ecd85d
2 changed files with 5 additions and 10 deletions

View File

@ -186,14 +186,12 @@ public:
// Inline fast path, particulary for constant strings where a sufficiently
// smart compiler will simplify strlen.
this->operator<<(StringRef(Str));
return *this;
return this->operator<<(StringRef(Str));
}
raw_ostream &operator<<(const std::string &Str) {
// Avoid the fast path, it would only increase code size for a marginal win.
write(Str.data(), Str.length());
return *this;
return write(Str.data(), Str.length());
}
raw_ostream &operator<<(unsigned long N);
@ -202,13 +200,11 @@ public:
raw_ostream &operator<<(long long N);
raw_ostream &operator<<(const void *P);
raw_ostream &operator<<(unsigned int N) {
this->operator<<(static_cast<unsigned long>(N));
return *this;
return this->operator<<(static_cast<unsigned long>(N));
}
raw_ostream &operator<<(int N) {
this->operator<<(static_cast<long>(N));
return *this;
return this->operator<<(static_cast<long>(N));
}
raw_ostream &operator<<(double N);

View File

@ -209,8 +209,7 @@ raw_ostream &raw_ostream::operator<<(const void *P) {
}
raw_ostream &raw_ostream::operator<<(double N) {
this->operator<<(ftostr(N));
return *this;
return this->operator<<(ftostr(N));
}