https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66573
--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Joshua Green from comment #7) > and I see no reason why expecting the "else" block should a priori be > preferable in either case. GCC does some fairly involved prediction (in predict.c). It isn't "a priori". > (It's also not clear HOW this could be "faster > on essentially all processors" Fall-through is faster than branching in most cases. Most CPUs have some kind of pipelining on instruction fetch. > Of course, the compiler is > free to make whatever guess it wants, but it would be nice if the programmer > had some portable way of expressing his/her own expectations, There is __builtin_expect, if that is portable enough for you. You can wrap it with some macros if you need it to be more portable. > and it seems > that other compilers provide that by "agreeing" to expect the "if" block > (as, indeed, various online articles recommend). I much doubt such trivial heuristics work better. Feel free to prove me wrong :-)