[LLVMdev] LLVM GHC Backend: Tables Next To Code

Simon Marlow simonmar at microsoft.com
Thu Feb 16 06:35:07 PST 2012


> > The table size is variable - between 2 and 6 32- or 64-bit words, where
> 2-3 is the common case.  This means Chris's trick of adjusting the pointer
> by a fixed amount to point directly to the code doesn't work unless we pad
> the table to the worst-case size all the time, which wastes a lot of
> space.
> Well... but you can surely emit the size of table as an argument of the
> jump instruction :)

Sure, the jump instruction is not the problem.  But we were hoping to omit the jump instruction and have the compiler add the correct offset to the pointer when it generates code.  In order to be able to do that, it has to know what the offset is: so either the offset is fixed, or we need some way to figure out what it is (we don't have that right now; in theory we could track that information but it might be painful to do so).

Cheers,
	Simon





More information about the llvm-dev mailing list