Add __builtin_expect in many places.
authordrepper <drepper>
Tue, 6 Jun 2000 06:14:35 +0000 (06:14 +0000)
committerdrepper <drepper>
Tue, 6 Jun 2000 06:14:35 +0000 (06:14 +0000)
iconv/loop.c

index 9e8e32e..857c93d 100644 (file)
@@ -232,14 +232,17 @@ FCTNAME (LOOPFCT) (const unsigned char **inptrp, const unsigned char *inend,
          /* `if' cases for MIN_NEEDED_OUTPUT ==/!= 1 is made to help the
             compiler generating better code.  It will optimized away
             since MIN_NEEDED_OUTPUT is always a constant.  */
-         if ((MIN_NEEDED_OUTPUT != 1 && outptr + MIN_NEEDED_OUTPUT > outend)
-             || (MIN_NEEDED_OUTPUT == 1 && outptr >= outend))
+         if ((MIN_NEEDED_OUTPUT != 1
+              && __builtin_expect (outptr + MIN_NEEDED_OUTPUT > outend, 0))
+             || (MIN_NEEDED_OUTPUT == 1
+                 && __builtin_expect (outptr >= outend, 0)))
            {
              /* Overflow in the output buffer.  */
              result = __GCONV_FULL_OUTPUT;
              break;
            }
-         if (MIN_NEEDED_INPUT > 1 && inptr + MIN_NEEDED_INPUT > inend)
+         if (MIN_NEEDED_INPUT > 1
+             && __builtin_expect (inptr + MIN_NEEDED_INPUT > inend, 0))
            {
              /* We don't have enough input for another complete input
                 character.  */
@@ -356,7 +359,7 @@ SINGLE(LOOPFCT) (const unsigned char **inptrp, const unsigned char *inend,
      bytes from the state and at least one more, or the character is still
      incomplete, or we have some other error (like illegal input character,
      no space in output buffer).  */
-  if (inptr != bytebuf)
+  if (__builtin_expect (inptr != bytebuf, 1))
     {
       /* We found a new character.  */
       assert (inptr - bytebuf > (state->__count & 7));