[virtmach] switch vs dispatch table (was Your VM)

MickaŽl Pointier virtmach@iecc.com
Tue, 29 May 2001 12:01:08 +0200


> > > Many compilers will generate an indirect jump through a
> > > table of pointers for a dense switch.  Generally, the
> > > compiler can generate better code for this internally
> > > than can be written in source code, so the switch version
> > > is likely to be faster.
> >
> > Most compilers will generate a range check before the jump, where as a
hand
> > coded jump table can assume that the data is in range.  Of course, its
very
> > hard to say, as we haven't even mentioned what language this VM might be
> > implemented in...
> >
>
> Personally I was thinking about C and gcc when I asked the question...

You may want to take a look at this page:

http://www.complang.tuwien.ac.at/forth/threaded-code.html

Toward the end there are some interesting considerations about the various
way to implement the so called "threaded code".

    Mickael Pointier