From: Dan Gohman Date: Mon, 14 Dec 2009 19:32:31 +0000 (+0000) Subject: Micro-optimize these functions in the case where they are not inlined. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=a4f8ecd85de38c14b11bbd0fc8cb9a427e9f3d75;p=oota-llvm.git 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 --- diff --git a/include/llvm/Support/raw_ostream.h b/include/llvm/Support/raw_ostream.h index a78e81fe955..2b3341dac64 100644 --- a/include/llvm/Support/raw_ostream.h +++ b/include/llvm/Support/raw_ostream.h @@ -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(N)); - return *this; + return this->operator<<(static_cast(N)); } raw_ostream &operator<<(int N) { - this->operator<<(static_cast(N)); - return *this; + return this->operator<<(static_cast(N)); } raw_ostream &operator<<(double N); diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp index 31451ccfdb1..0c90e7720bf 100644 --- a/lib/Support/raw_ostream.cpp +++ b/lib/Support/raw_ostream.cpp @@ -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)); }