mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-01 01:30:36 +00:00
Replace the BUILTIN_EXPECT macro with a less horrible LLVM_LIKELY/LLVM_UNLIKELY interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162873 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
15b7a98ece
commit
55907d1274
@ -106,9 +106,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__GNUC__ >= 4)
|
#if (__GNUC__ >= 4)
|
||||||
#define BUILTIN_EXPECT(EXPR, VALUE) __builtin_expect((EXPR), (VALUE))
|
#define LLVM_LIKELY(EXPR) __builtin_expect((EXPR), true)
|
||||||
|
#define LLVM_UNLIKELY(EXPR) __builtin_expect((EXPR), false)
|
||||||
#else
|
#else
|
||||||
#define BUILTIN_EXPECT(EXPR, VALUE) (EXPR)
|
#define LLVM_LIKELY(EXPR) (EXPR)
|
||||||
|
#define LLVM_UNLIKELY(EXPR) (EXPR)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -266,8 +266,8 @@ void raw_ostream::flush_nonempty() {
|
|||||||
|
|
||||||
raw_ostream &raw_ostream::write(unsigned char C) {
|
raw_ostream &raw_ostream::write(unsigned char C) {
|
||||||
// Group exceptional cases into a single branch.
|
// Group exceptional cases into a single branch.
|
||||||
if (BUILTIN_EXPECT(OutBufCur >= OutBufEnd, false)) {
|
if (LLVM_UNLIKELY(OutBufCur >= OutBufEnd)) {
|
||||||
if (BUILTIN_EXPECT(!OutBufStart, false)) {
|
if (LLVM_UNLIKELY(!OutBufStart)) {
|
||||||
if (BufferMode == Unbuffered) {
|
if (BufferMode == Unbuffered) {
|
||||||
write_impl(reinterpret_cast<char*>(&C), 1);
|
write_impl(reinterpret_cast<char*>(&C), 1);
|
||||||
return *this;
|
return *this;
|
||||||
@ -286,8 +286,8 @@ raw_ostream &raw_ostream::write(unsigned char C) {
|
|||||||
|
|
||||||
raw_ostream &raw_ostream::write(const char *Ptr, size_t Size) {
|
raw_ostream &raw_ostream::write(const char *Ptr, size_t Size) {
|
||||||
// Group exceptional cases into a single branch.
|
// Group exceptional cases into a single branch.
|
||||||
if (BUILTIN_EXPECT(size_t(OutBufEnd - OutBufCur) < Size, false)) {
|
if (LLVM_UNLIKELY(size_t(OutBufEnd - OutBufCur) < Size)) {
|
||||||
if (BUILTIN_EXPECT(!OutBufStart, false)) {
|
if (LLVM_UNLIKELY(!OutBufStart)) {
|
||||||
if (BufferMode == Unbuffered) {
|
if (BufferMode == Unbuffered) {
|
||||||
write_impl(Ptr, Size);
|
write_impl(Ptr, Size);
|
||||||
return *this;
|
return *this;
|
||||||
@ -302,7 +302,7 @@ raw_ostream &raw_ostream::write(const char *Ptr, size_t Size) {
|
|||||||
// If the buffer is empty at this point we have a string that is larger
|
// If the buffer is empty at this point we have a string that is larger
|
||||||
// than the buffer. Directly write the chunk that is a multiple of the
|
// than the buffer. Directly write the chunk that is a multiple of the
|
||||||
// preferred buffer size and put the remainder in the buffer.
|
// preferred buffer size and put the remainder in the buffer.
|
||||||
if (BUILTIN_EXPECT(OutBufCur == OutBufStart, false)) {
|
if (LLVM_UNLIKELY(OutBufCur == OutBufStart)) {
|
||||||
size_t BytesToWrite = Size - (Size % NumBytes);
|
size_t BytesToWrite = Size - (Size % NumBytes);
|
||||||
write_impl(Ptr, BytesToWrite);
|
write_impl(Ptr, BytesToWrite);
|
||||||
copy_to_buffer(Ptr + BytesToWrite, Size - BytesToWrite);
|
copy_to_buffer(Ptr + BytesToWrite, Size - BytesToWrite);
|
||||||
@ -523,7 +523,7 @@ void raw_fd_ostream::write_impl(const char *Ptr, size_t Size) {
|
|||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
|
|
||||||
// Check whether we should attempt to use atomic writes.
|
// Check whether we should attempt to use atomic writes.
|
||||||
if (BUILTIN_EXPECT(!UseAtomicWrites, true)) {
|
if (LLVM_LIKELY(!UseAtomicWrites)) {
|
||||||
ret = ::write(FD, Ptr, Size);
|
ret = ::write(FD, Ptr, Size);
|
||||||
} else {
|
} else {
|
||||||
// Use ::writev() where available.
|
// Use ::writev() where available.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user