Messages in this thread | | | Date | Tue, 06 Oct 2009 16:24:47 -0700 | From | Richard Henderson <> | Subject | Re: [PATCH 0/4] jump label patches |
| |
On 10/05/2009 10:39 PM, Roland McGrath wrote: > Of course, a first important point is what the actual compiled code > sequences look like. I'm hoping Richard (who implemented the compiler > feature for us) can help us with making sure our expectations jibe with the > code we'll really get. There's no benefit in optimizing our asm not to > introduce a jump into the hot path if the compiler actually generates the > tracing path first and gives the hot path a "jmp" around it anyway.
At present, the asm goto extension gives no prediction weights to any path. I had hoped that the -freorder-blocks pass (enabled with -O2) would automatically place the relevant fallthrough blocks immediately after the asm goto. It did happen for small test cases, but a message from Jason downthread indicates that it doesn't always happen.
> if (__builtin_expect(0,0)) do_trace: __attribute__((cold)) { ... }
An attribute cold on a label is something that I've suggested, but have not yet implemented. I think that might be the easiest way to add prediction weights to an asm goto.
r~
| |