Dan Sugalski <[EMAIL PROTECTED]> wrote:
> 2) The stack entry has to look something like:
> struct {
> struct IntStackFrame *prev;
> INTVAL Registers[REGSPERFRAME];
> } IntStackFrame;
Ok, now we "something like" that:
typedef struct Stack_Chunk {
pobj_t obj;
int
Piers Cawley <[EMAIL PROTECTED]> wrote:
> Interesting. I redid oofib.imc to only save the registers it cares
> about rather than using savetop, and here are my numbers (admittedly on
> a PowerMac G5:
> parrot parrotj parrotC perlpython ruby
> oofib 3.770s 3.190s 2.950s 2.210s
Leopold Toetsch <[EMAIL PROTECTED]> writes:
> I've stripped down the whole stack code to use one item per chunk. It
> passes all tests (3 disabled that push infintely and check for
> CHECK_LIMIT and t/pmc/eval_6 which is borken).
>
> This slows down register saving (and other stack operations)
> c
Dan Sugalski <[EMAIL PROTECTED]> wrote:
> User stack entries are different from backing stack frames. They need
> to be treated differently, and as such aren't under consideration
> here.
They are in the continuation context too. While the user stack may be
freshly allocated in a sub the control
At 5:38 PM +0100 3/23/04, Leopold Toetsch wrote:
Dan Sugalski wrote:
looked. For this to be reasonable we need:
1) A stack chunk freelist, akin to the PMC and buffer freelists
Well, that did I write in my message. Please read it (again).
I did. The need for a freelist, however, has been there sin
Dan Sugalski wrote:
looked. For this to be reasonable we need:
1) A stack chunk freelist, akin to the PMC and buffer freelists
Well, that did I write in my message. Please read it (again). And please
one thing and then the next.
2) The stack entry has to look something like:
struct {
At 12:34 PM +0100 3/23/04, Leopold Toetsch wrote:
I've stripped down the whole stack code to use one item per chunk.
It passes all tests (3 disabled that push infintely and check for
CHECK_LIMIT and t/pmc/eval_6 which is borken).
From reading this patch, either something's horribly wrong here or
I've stripped down the whole stack code to use one item per chunk. It
passes all tests (3 disabled that push infintely and check for
CHECK_LIMIT and t/pmc/eval_6 which is borken).
This slows down register saving (and other stack operations)
considerably whithout any additional measures[1]:
$ p