------- Comment #9 from scovich at gmail dot com  2009-05-13 07:55 -------
RE: __builtin_expect -- Thanks! It did help quite a bit, even though the
compiler was already emitting not-taken branch hints on its own.

RE: Filing bugs -- I have. This RFE arose out of Bug #40078, which was
triggered by attempts to work around Bug #40067. I still have some issues with
overconservative use of branch delay slots and possibly loop pipelining, but
haven't gotten to filing them yet. I've also filed other bugs in the past where
it would have been nice to work around using inline asm but control flow was a
pain.

In the end, is there any particular reason *not* to make inline asm easier to
use and more transparent to the compiler, given points #1 and #2? Invoking
point #3, what significant uses of computed gotos exist, other than to work
around switch statements that compile suboptimally? The docs don't mention any,
and yet we have them instead of (or in addition to) bug reports. 

I'd take a stab at implementing this myself -- it's probably a one-liner -- but
I've never hacked gcc before and have no clue where that one line might lurk. 

BTW, how does one exploit the compiler's overflow catching? I tried testing a+b
< a and a+b < b (for unsigned ints) with no luck, and there's no __builtin test
for overflow or carry. 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40124

Reply via email to