haproxy/include/common
Willy Tarreau 70bcfb77a7 [OPTIM] GCC4's builtin_expect() is suboptimal
GCC4 is stupid (unbelievable news!).

When some code uses __builtin_expect(x != 0, 1), it really performs
the check of x != 0 then tests that the result is not zero! This is
a double check when only one was expected. Some performance drops
of 10% in the HTTP parser code have been observed due to this bug.

GCC 3.4 is fine though.

A solution consists in expecting that the tested value is 1. In
this case, it emits the correct code, but it's still not optimal
it seems. Finally the best solution is to ignore likely() and to
pray for the compiler to emit correct code. However, we still have
to fix unlikely() to remove the test there too, and to fix all
code which passed pointers overthere to pass integers instead.
2008-02-14 23:14:33 +01:00
..
appsession.h [MAJOR] remove files distributed under an obscure license 2007-09-09 21:56:53 +02:00
base64.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
cfgparse.h [MEDIUM]: Inversion for options 2007-12-27 11:52:06 +01:00
compat.h [MINOR] add transparent proxy support for balabit's Tproxy v4 2008-01-13 17:37:16 +01:00
config.h [MEDIUM] implement memory pools version 2 2007-05-13 18:26:08 +02:00
debug.h [BUILD] debug.h had a typo. Also add FSM_PRINTF to debug FSM only. 2006-12-16 23:22:58 +01:00
defaults.h [MEDIUM] Handle long lines properly 2007-11-01 23:00:51 +01:00
eb32tree.h [BUILD] make ebtree headers multiple-include compatible 2007-11-28 14:23:05 +01:00
eb64tree.h [BUILD] make ebtree headers multiple-include compatible 2007-11-28 14:23:05 +01:00
ebpttree.h [BUILD] make ebtree headers multiple-include compatible 2007-11-28 14:23:05 +01:00
ebtree.h [OPTIM] GCC4's builtin_expect() is suboptimal 2008-02-14 23:14:33 +01:00
epoll.h [BUILD] declare epoll_* as static when using our own functions 2007-04-15 23:57:41 +02:00
errors.h [MINOR] add an options field to the listeners 2007-11-04 22:42:48 +01:00
memory.h [MAJOR] call garbage collector when doing soft stop 2007-05-14 00:39:29 +02:00
mini-clist.h [CLEANUP] silent warning about LIST_* being redefined on OpenBSD 2007-10-28 11:41:06 +01:00
rbtree.h [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.h [MAJOR] merged the 'setbe' actions to switch the backend on a regex 2006-12-17 23:15:24 +01:00
sessionhash.h [MAJOR] remove files distributed under an obscure license 2007-09-09 21:56:53 +02:00
standard.h [OPTIM] GCC4's builtin_expect() is suboptimal 2008-02-14 23:14:33 +01:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
time.h [BUILD] fix 2 minor issues on AIX 2007-11-30 18:38:35 +01:00
tools.h [MINOR] forgot to include common/tools.h in the archive. 2006-12-22 14:40:41 +01:00
uri_auth.h [MINOR] report haproxy's version by default on the stats page 2007-10-15 10:05:11 +02:00
version.h [BUILD] centralize version and date into one file for each 2007-09-09 23:31:11 +02:00