From: Willy Tarreau Date: Fri, 10 Nov 2017 10:19:54 +0000 (+0100) Subject: MINOR: tools: don't use unlikely() in hex2i() X-Git-Tag: v1.8-rc3~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa39860aeffbe4a6fe621bbdc5bfd1b12e16468b;p=thirdparty%2Fhaproxy.git MINOR: tools: don't use unlikely() in hex2i() This small inline function causes some pain to the compiler when used inside other functions due to its use of the unlikely() hint for non-digits. It causes the letters to be processed far away in the calling function and makes the code less efficient. Removing these unlikely() hints has increased the chunk size parsing by around 5%. --- diff --git a/include/common/standard.h b/include/common/standard.h index a06fb84461..d88599de44 100644 --- a/include/common/standard.h +++ b/include/common/standard.h @@ -317,9 +317,9 @@ extern int ishex(char s); */ static inline int hex2i(int c) { - if (unlikely((unsigned char)(c -= '0') > 9)) { - if (likely((unsigned char)(c -= 'A' - '0') > 5 && - (unsigned char)(c -= 'a' - 'A') > 5)) + if ((unsigned char)(c -= '0') > 9) { + if ((unsigned char)(c -= 'A' - '0') > 5 && + (unsigned char)(c -= 'a' - 'A') > 5) c = -11; c += 10; }