Newsgroups: perl.perl6.internals
From: l...@toetsch.at (Leopold Toetsch)
Date: Tue, 11 Feb 2003 10:49:14 +0100
Local: Tues, Feb 11 2003 4:49 am
Subject: Re: [CVS ci] CGP - CGoto Prederefed runloop
Leopold Toetsch wrote: I have thought about this, with a little help from ddd: > 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 function calls to jit_normal_op. 1) This produces unoptimized almost the same code quality and speed as -O3. The cur_opcode is in %esi, all operand access is done like in the posted 2) There is one new opcode: B<jmp_to_eip inconst INT> The argument is the native_ptr in JIT code, where to return from a goto **(cur_opcode + 1); The address is filled in by the JIT emit functions. 3) The Parrot_jit_begin() emits code to call cgp_core (alas setting up 4) When there is a seqence (more then 1) non JITed ops, 5) non JITed branches do not fit very nicely in this scheme, but there 6) and finally the prederefed B<end> opcode gets jumped to by code So we would not have any function call overhead and getting the best This approach would of course need some architecture/compiler specific Comments welcome, You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
| ||||||||||||||