On Thu, Feb 13, 2003 at 04:43:37PM +0100, Leopold Toetsch wrote:
> Nicholas Clark wrote:

> > The idea actually works at all?
> 
> 
> I have it running now.

Can you write an opcode that solves the halting problem? :-)

> JIT/i386 uses the stackframe of CGP for its own. When there is a 
> sequence of non-JITed functions, JIT code braanches directly into the 
> CGP core and executes the CGP ops. Going back to JIT is a asm("ret"), 
> which is a new (the 1000th !) opcode.

That sounds hairy. :-)

> > And it goes faster than the prederef computed goto core?
> 
> 
> Yep, though I don't have many test cases:
> $ parrot -P life.pbc
> 5000 generations in 5.629500 seconds. 888.178341 generations/sec
> 
> $ parrot -j life.pbc
> 5000 generations in 5.290360 seconds. 945.115271 generations/sec      
> 
> $ cd languages/perl6 ; perl6 -C -O3 ../../life.pasm
> 5000 generations in 5.154097 seconds. 970.102045 generations/sec
> 
> parrot/imcc: -O3 compiled on i386/linux, Athlon 800. 

Presumably life.pasm mainly uses ops that already have JIT implementations.
Do you have examples of code that doesn't have many OPs, and "currently"
goes faster on x86 under CGoto rather than JIT? These would be the
interesting ones.

> Should I commit it or send to the list first?

I don't know. Are you confident in it? Does it pass all Parrot's regression
tests?

Nicholas Clark

Reply via email to