https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83610
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Daniel Fruzynski from comment #3) > Created attachment 42980 [details] > Benchmark > > Here is benchmark for this case. With unlikely() execution time decreases > from 20.5sec to 20.3sec - about 1%. For my real app change it was a bit more > than 2%. Thanks for the micro-benchmark. > > Thanks for information about this parameter, I will give it a try. So far I > noticed that gcc uses CMOV when values are stored in registers. When they > are in memory as a class fields, it generates code with branches. I am still > playing with this code, so maybe I will need it later. > > BTW, what do you thing about adding 3rd param to __builtin_expect, which > will specify probability? It may be helpful in cases like mine. Well I haven't thought about it. From implementation point of view it will be simple. But usage can be then a bit complicated. Thoughts?