eo - another 1.5 percent speedup in eo_bench eo_do by removing err handl
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 17 Oct 2015 02:42:46 +0000 (11:42 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 17 Oct 2015 02:42:46 +0000 (11:42 +0900)
commit94ebd96df509c36a8d0d12b3e5c9befbf0287441
treeb7851885be600c6d5faa6b25454b3298c5b481d1
parent1a135fdfb1265154057c7b47041b1bea4e3207b6
eo - another 1.5 percent speedup in eo_bench eo_do by removing err handl

so we do a bit of error handling like does a stack fail to allocate,
does setting the tls var fail, have the stack frames been nulled or
not allocated, etc. - these acutally cost every call because they mean
some extra compare and branches, but ore because they cause a lot fo
extra code to be generated, thus polluting instruction cache with code
and cacheline fetches of code that we rarely take - if ever.

every if () and DBG, ERR etc. does cost something. in really hotpath
code like this, i think it's best we realize that these checks will
basically never be triggered, because if a stack fails to grow... we
likely alreayd blew our REAL stack for the C/C++ side and that can't
allocate anymore and has already just crashed (no magic message there -
just segv). so in this case i think this checking is pointless and
just costs us rather than gets us anything.
src/lib/eo/eo.c