mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
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). llvm-svn: 79450
This commit is contained in:
parent
2411847839
commit
07444dd862
@ -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);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user