Thread status constants

Kyle Van Berendonck kvanberendonck at
Mon Jul 21 20:51:11 UTC 2014

Hi Simon,

I have been inspecting what gcc generates and found that in all the
functions I checked which used the thread status in a switch, none of them
generated jump tables, rather, long chains of cmp's.

I predict this is because there are overlapping cases (or even a
fall-through in one I saw, which looked accidental...).

On Tue, Jul 22, 2014 at 5:32 AM, Simon Marlow <marlowsd at> wrote:

> On 19/07/2014 06:00, Kyle Van Berendonck wrote:
>> I found these:
>> 5692867825/includes/rts/Constants.h#L194
>> They go only 0-14, so there's some long chains of branches and stuff in
>> hot paths that could be cleaned up into single &-masked branches by
>> changing these into a set of flags.
> GHC will generate a table jump for a large dense case, if that's what
> you're worried about.
> Cheers,
> Simon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list