Remove SmallString::append_*int* methods; how many copies of int -> str

conversion code do we really need?
 - S.append_uint(N) can be replaced with 'raw_svector_ostream(S) << N' which is
   somewhat slower due to the extra set up cost, but still plenty fast
   (especially if the svector set up cost can be amortized).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79450 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-08-19 19:28:18 +00:00
parent 29c142077e
commit 921be7a6f2

View File

@ -59,47 +59,6 @@ public:
this->push_back(C);
return *this;
}
SmallString &append_uint_32(uint32_t N) {
char Buffer[20];
char *BufPtr = Buffer+20;
if (N == 0) *--BufPtr = '0'; // Handle special case.
while (N) {
*--BufPtr = '0' + char(N % 10);
N /= 10;
}
this->append(BufPtr, Buffer+20);
return *this;
}
SmallString &append_uint(uint64_t N) {
if (N == uint32_t(N))
return append_uint_32(uint32_t(N));
char Buffer[40];
char *BufPtr = Buffer+40;
if (N == 0) *--BufPtr = '0'; // Handle special case...
while (N) {
*--BufPtr = '0' + char(N % 10);
N /= 10;
}
this->append(BufPtr, Buffer+40);
return *this;
}
SmallString &append_sint(int64_t N) {
if (N < 0) {
this->push_back('-');
N = -N;
}
return append_uint((uint64_t)N);
}
};