[Python-Dev] opcode dispatch optimization

Nicolas Trangez nicolas at qlayer.com
Fri Jan 2 09:25:34 CET 2009


On Wed, 2008-12-31 at 12:51 -0600, Jason Orendorff wrote:
> On Wed, Dec 31, 2008 at 11:44 AM, Christian Heimes <lists at cheimes.de> wrote:
> > The patch makes use of a GCC feature where labels can be used as values:
> > http://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html . I didn't know
> > about the feature and got confused by the unary && operator.
> 
> Right.  SpiderMonkey (Mozilla's JavaScript interpreter) does this, and
> it was good for a similar win on platforms that use GCC.  (It took me
> a while to figure out why it was so much faster, so I think this patch
> would be better with a few very specific comments!)
> 
> SpiderMonkey calls this optimization "threaded code" too, but this
> isn't the standard meaning of that term. See:
> http://en.wikipedia.org/wiki/Threaded_code

FWIW, it's also explained pretty well in the first pages of [1].
WebKit's SquirrelFish is direct-threaded as well [2].

Nicolas

[1]
http://citeseer.ist.psu.edu/cache/papers/cs/32018/http:zSzzSzwww.jilp.orgzSzvol5zSzv5paper12.pdf/ertl03structure.pdf
[2] http://webkit.org/blog/189/announcing-squirrelfish/



More information about the Python-Dev mailing list