[LLVMdev] jump table ?

Chris Lattner sabre at nondot.org
Wed Jun 28 09:53:56 PDT 2006


On Wed, 28 Jun 2006, Simon Burton wrote:
> Is it possible to take the address
> of a basic block ?

Nope.

> I'd like to put a whole bunch of these
> addresses into an array, and then select
> one to branch to. Eg. like a switch statement.
> (i'm thinking also of GCC's computed goto's)

llvm-gcc supports gcc's computed goto's.  You can see what code it 
generates.

> I'm finding the code generated by an llvm switch
> is a big bunch of compares and jump instructions,
> which i'm not sure is the most efficent way of
> doing this.

LLVM does support switch table emission, but only in certain modes.  I 
think it's only supported in non-pic codegen mode.  Patches to improve 
this would be welcome :)

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-dev mailing list