Author: Robert Hyatt
Date: 14:16:26 11/14/02
Go up one level in this thread
On November 14, 2002 at 13:35:25, Dieter Buerssner wrote: >On November 13, 2002 at 15:55:51, Robert Hyatt wrote: > > >>You can do that in C with bit-fields as well, but it both it and ADA are >>horribly >>slow when you fiddle with bitfields. > >Can you show a small example, where bit-fields in C produce horribly slow code? >I am aware of the fact, that much of the internal data layout of bitfields is >implementation defined in C, so, as in many other cases too, some low level >tricks (for example by using unions) cannot be coded portable. But the same is >already true without using bit-fields. However, assembly output I looked at, >seemed very reasonable. There are some pitfalls, like type int may be signed or >unsigned int, but this can be taken care of in the code, by never using int >alone without signed or unsigned. > >Regards, >Dieter The first place I found it was in my compressed move format. IE I had a move defined as struct move { unsigned int from:6; unsigned int to:6; unsigned int piece:3; unsigned int captured:3; unsigned int promot:3; } I noticed how slow it was by simply packing/unpacking directly in C using AND/OR bitwise operations, and it sped it way up. I tested this on two compilers of the time, gcc and sun's CC compiler...
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.