Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-14 Thread Leopold Toetsch
Nicholas Clark wrote: I'd suggest committing it, rather than sending it to the list. Ok, I'll do that after checking again on a second machine ... I think it would be better to write them into a design doc I'll include docs/dev/jit_i386.dev with has most of the gory details. Nicholas

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-13 Thread Nicholas Clark
On Thu, Feb 13, 2003 at 06:34:55PM +0100, Leopold Toetsch wrote: > Nicholas Clark wrote: > > >On Thu, Feb 13, 2003 at 04:43:37PM +0100, Leopold Toetsch wrote: > >>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

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-13 Thread Leopold Toetsch
Nicholas Clark wrote: On Thu, Feb 13, 2003 at 04:43:37PM +0100, Leopold Toetsch wrote: Nicholas Clark wrote: 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

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-13 Thread Nicholas Clark
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

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-13 Thread Leopold Toetsch
Nicholas Clark wrote: On Tue, Feb 11, 2003 at 10:49:14AM +0100, Leopold Toetsch wrote: Leopold Toetsch wrote: Or go the other way round: Run from JIT. If there is a sequence of non JITable ops, convert these to a CGP section, which returns to JIT when finished. This would save a lot of fu

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-11 Thread Leopold Toetsch
Nicholas Clark wrote: On Tue, Feb 11, 2003 at 10:49:14AM +0100, Leopold Toetsch wrote: I failed to follow most of the specific details, and all of the x86 specific stuff. Basically, all non JITed opcodes, which are now called functions (Parrot_jit_normal_op) would instead get jumped to in

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-11 Thread Nicholas Clark
On Tue, Feb 11, 2003 at 10:49:14AM +0100, Leopold Toetsch wrote: > Leopold Toetsch wrote: > > >Nicholas Clark wrote: > > >>Inside a cgoto core have 1 extra op - enter JITted section. > > >Or go the other way round: Run from JIT. If there is a sequence of non > >JITable ops, convert these to a C

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-11 Thread Leopold Toetsch
Leopold Toetsch wrote: Nicholas Clark wrote: Inside a cgoto core have 1 extra op - enter JITted section. Or go the other way round: Run from JIT. If there is a sequence of non JITable ops, convert these to a CGP section, which returns to JIT when finished. This would save a lot of functio

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-11 Thread Leopold Toetsch
Simon Glover wrote: Hi all. The new CGP code causes compilation of interpreter.c to fail if HAVE_COMPUTED_GOTO is undefined. Ah, yes thanks. I have checked in a fix. leo

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-10 Thread Simon Glover
Hi all. The new CGP code causes compilation of interpreter.c to fail if HAVE_COMPUTED_GOTO is undefined. This is because it references Parrot_DynOp_core_cgp_0_0_9, which is defined in core_ops_cgp.h, and the latter is only included when HAVE_COMPUTED_GOTO is defined. This bug appears to be

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-09 Thread Leopold Toetsch
Jerome Vouillon wrote: On Thu, Feb 06, 2003 at 01:37:42PM +0100, Leopold Toetsch wrote: This is one thing I allways wanted to try ;-) fast_core MOps: 11 Prederef: 17.5 CGoto MOps: 19.4 CGP MOps: 27.5 CGP -O3 MOps: 65 !!!1 Why not also predereference the operation address

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-09 Thread Gopal V
If memory serves me right, Nicholas Clark wrote: > I had a (possibly) impractical idea - computed goto / JIT > (or even computed goto / prederef / jit) core > > I don't know whether this is possible: > > Inside a cgoto core have 1 extra op - enter JITted section. > > The bytecode is "compiled"

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-08 Thread Leopold Toetsch
Nicholas Clark wrote: I had a (possibly) impractical idea - computed goto / JIT (or even computed goto / prederef / jit) core I don't know whether this is possible: Inside a cgoto core have 1 extra op - enter JITted section. The bytecode is "compiled" by the JIT (at some point) - if there are

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-08 Thread Jason Gloudon
On Sat, Feb 08, 2003 at 03:10:58PM +, Nicholas Clark wrote: > The bytecode is "compiled" by the JIT (at some point) - if there are a run > of consecutive JIT-able ops, then issue a section (an isolated section) of > machine code for those ops, and replace those ops in the bytecode with an op >

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-08 Thread Nicholas Clark
On Thu, Feb 06, 2003 at 01:37:42PM +0100, Leopold Toetsch wrote: > This is one thing I allways wanted to try ;-) > > fast_core MOps: 11 > Prederef: 17.5 > CGoto MOps: 19.4 > CGP MOps: 27.5 > CGP -O3 MOps: 65 !!!1 > > This runloop combines the faster dispatch of opcodes via compu

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-07 Thread Leopold Toetsch
Melvin Smith wrote: At 10:12 PM 2/6/2003 +0100, Leopold Toetsch wrote: Improvements welcome - and I'm a really bad C programmer, I won't do it. *cough* If you are a "bad" C programmer, what is your "good" language? :) I don't have one. But IMHO I have a fair survey over the whole (except

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-06 Thread Melvin Smith
At 10:12 PM 2/6/2003 +0100, Leopold Toetsch wrote: Improvements welcome - and I'm a really bad C programmer, I won't do it. *cough* If you are a "bad" C programmer, what is your "good" language? :) -Melvin

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-06 Thread Leopold Toetsch
Jerome Vouillon wrote: CGP -O3 MOps: 65 !!!1 This generates some pretty good code (for instance, for sub_i_i_i) : Yep. I'd have a look at it, really compact. Why not also predereference the operation address? This would save a memory read. The goto would become: goto **(cur_op

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-06 Thread Jerome Vouillon
On Thu, Feb 06, 2003 at 01:37:42PM +0100, Leopold Toetsch wrote: > This is one thing I allways wanted to try ;-) > > fast_core MOps: 11 > Prederef: 17.5 > CGoto MOps: 19.4 > CGP MOps: 27.5 > CGP -O3 MOps: 65 !!!1 > > This runloop combines the faster dispatch of opcodes via compu

Re: [CVS ci] CGP - CGoto Prederefed runloop

2003-02-06 Thread gregor
leo++ Leopold Toetsch <[EMAIL PROTECTED]> 02/06/2003 07:37 AM To: P6I <[EMAIL PROTECTED]> cc: Subject: [CVS ci] CGP - CGoto Prederefed runloop This is one thing I allways wanted to try ;-) fast_core MOps: 11 Prederef: 17.5 CGoto MO

[CVS ci] CGP - CGoto Prederefed runloop

2003-02-06 Thread Leopold Toetsch
This is one thing I allways wanted to try ;-) fast_core MOps: 11 Prederef: 17.5 CGoto MOps: 19.4 CGP MOps: 27.5 CGP -O3 MOps: 65 !!!1 This runloop combines the faster dispatch of opcodes via computed goto and the clever register addressing due to predereferencing registers and