Re: [Python-Dev] new bytecode results
![](https://secure.gravatar.com/avatar/135b00c97cc7af2e25f4f23b10e02d48.jpg?s=120&d=mm&r=g)
The last point is probably compiler dependent. GCC has the tendency to use the same layout for the assembler code as you use in the C source code, so placing often used code close to the top results in better locality (at least on my machines).
My experience with gcc (on x86) is that it uses a lookup table for contiguous switch statements rather than a long chain of compares/branches. A quick look at the assembler output from ceval.c suggests it's using a lookup table.
Right, but the code for the case implementations itself is ordered (more or less) in the order you use in the C file. At least that was the case at the time (which must have been GCC 2.95.x or even earlier).
Yeah - I think I must have been reading too fast - on second reading, you clearly said "locality". -- Andrew McNamara, Senior Developer, Object Craft http://www.object-craft.com.au/
participants (1)
-
Andrew McNamara