Re: [RFC] imcc calling conventions

2003-02-22 Thread Nicholas Clark
On Thu, Feb 20, 2003 at 09:55:35AM -0800, Steve Fink wrote: > I think this has been discussd before, but are we all okay with this > callee-save-everything policy? At the very least, I'd be tempted to > add a bitmasked saveall/restoreall pair to reduce the amount of cache > thrashing. ("saveall 0b0

Re: Using imcc as JIT optimizer

2003-02-22 Thread Gopal V
If memory serves me right, Dan Sugalski wrote: > This sounds pretty interesting, and I bet it could make things > faster. The one thing to be careful of is that it's easy to get > yourself into a position where you spend more time optimizing the > code you're JITting than you win in the end. I

Re: Objects, methods, attributes, properties, and other related frobnitzes

2003-02-22 Thread Graham Barr
On Fri, Feb 21, 2003 at 04:34:42PM -0500, Dan Sugalski wrote: > If A isa B, we certainly wouldn't want to call A's AUTOLOAD on a > method before we looked to see if B had a concrete instance of that > method. Right. The best you could probably do is note where you found the first AUTOLOAD so tha

non-inline text in parrot assembly?

2003-02-22 Thread Tupshin Harper
Parrot assembly supports inline strings, but are there any plans to have it support a distinct .string (or similar) asm section? The main benefit would be easier compatibility/portability with existing assembly code generators. Is anybody aware of an existing assembly format that doesn't suppor

Re: non-inline text in parrot assembly?

2003-02-22 Thread Leopold Toetsch
Tupshin Harper wrote: Parrot assembly supports inline strings, but are there any plans to have it support a distinct .string (or similar) asm section? The main benefit would be easier compatibility/portability with existing assembly code generators. Is anybody aware of an existing assembly form

Re: [RFC] imcc calling conventions

2003-02-22 Thread Leopold Toetsch
Steve Fink wrote: On Feb-18, Leopold Toetsch wrote: [ ... ] .return mi# [1] restoreall ret .end My immediate reaction to this (okay, I really saw this before in perl6-generated code) is "why don't the values from .return and restoreall get mixed up?" Yep. It is at least confu

Re: Configure.pl --cgoto=0 doesn't work

2003-02-22 Thread Leopold Toetsch
Nicholas Clark wrote: On Fri, Feb 21, 2003 at 08:34:05AM +0100, Leopold Toetsch wrote: Case 2) should disable only core_ops_cg.c but not core_ops_cgp.c But surely we'd also like a flag to disable core_ops_cgp.c but leave core_ops_cg.c? IMHO no. Why disable the faster and much smaller core, and

Re: Using imcc as JIT optimizer

2003-02-22 Thread Leopold Toetsch
Gopal V wrote: I'm assuming that the temporaries are the things being moved around here ?. It is not so much a matter of moving things around, but a matter of allocating (and renumbering) parrot (or for JIT) processor registers. These are of course mainly temporaries, but even when you have so

Re: IMCC's bsr handling

2003-02-22 Thread Leopold Toetsch
Steve Fink wrote: [Apologies if you receive this twice, No problemm, the duplicate filter in procmail takes care of it. On Sat, Feb 08, 2003 at 12:19:35PM +0100, Leopold Toetsch wrote: When we want these kind of branches, then they must be more high level, defining all possible branch targe

L-valueness of Arrays vs. Lists

2003-02-22 Thread Martin D Kealey
On Tue, 11 Feb 2003, Michael Lazzaro wrote: > What is the utility of the perl5 behavior: > > \($a,$b,$c) > > meaning > > (\$a, \$b, \$c) > > Do people really do that? ... Can someone give an example of an actual, > proper, use? Yes, I've used it like this: for (\($a,$b,$c)) {

Re: Arrays, lists, referencing

2003-02-22 Thread Martin D Kealey
I would like to chip in in favour of the "list is value, array is container" side of the argument. However I think that needs clarifying. A reference is a value; the thing it refers to is a container. An anonymous container is a container with no references from any symbol table. It can lose it

Re: non-inline text in parrot assembly?

2003-02-22 Thread Tupshin Harper
Leopold Toetsch wrote: Tupshin Harper wrote: Thanks. Apparently I'm being daft. I don't see any mention of pasm sections(constant or otherwise) in the pod docs, nor do any of the examples appear to use a constants section. What am I missing? Sorry nothing. There are only IIRC 3 tests in parrot

Re: Objects, methods, attributes, properties, and other related frobnitzes

2003-02-22 Thread Dan Sugalski
At 9:33 AM + 2/22/03, Graham Barr wrote: On Fri, Feb 21, 2003 at 04:34:42PM -0500, Dan Sugalski wrote: If A isa B, we certainly wouldn't want to call A's AUTOLOAD on a method before we looked to see if B had a concrete instance of that method. Right. The best you could probably do is note wh

Re: Objects, methods, attributes, properties, and other related frobnitzes

2003-02-22 Thread Dan Sugalski
At 12:24 PM -0500 2/22/03, Benjamin Goldberg wrote: Graham Barr wrote: On Fri, Feb 21, 2003 at 04:34:42PM -0500, Dan Sugalski wrote: > If A isa B, we certainly wouldn't want to call A's AUTOLOAD on a > method before we looked to see if B had a concrete instance of that > method. Right. The bes

Re: invoke

2003-02-22 Thread Dan Sugalski
At 10:20 AM -0800 2/20/03, Steve Fink wrote: The invoke op is bothering me -- namely, it disturbs me that it implicitly operates on P0. I know that P0 is the correct register to use according to pdd03, but I dislike having it be implicit. The user is required to set the rest of the pdd03 convention

Re: [RFC] imcc calling conventions

2003-02-22 Thread Dan Sugalski
At 9:55 AM -0800 2/20/03, Steve Fink wrote: I think this has been discussd before, but are we all okay with this callee-save-everything policy? Nope. It's safe to say that a lot of folks aren't. :) Still, I think it's the right way to go in the general case. Most sub calls of any complexity will

Re: Objects, methods, attributes, properties, and other related frobnitzes

2003-02-22 Thread Dan Sugalski
At 11:46 PM -0500 2/21/03, Benjamin Goldberg wrote: My bit of example code was merely to demonstrate that UNIVERSAL::can() from perl5 clearly has the problem that Andy Wardley worries about wrt "freezing" to a particular definition... Thus, it *may* be a good idea to *not* provide a user-code-leve

Re: Using imcc as JIT optimizer

2003-02-22 Thread Dan Sugalski
At 4:28 PM +0100 2/22/03, Leopold Toetsch wrote: Gopal V wrote: Direct hardware maps (like using CX for loop count etc) will need to be platform dependent ?. Or you could have a fixed reg that can be used for loop count (and gets mapped on hardware appropriately). We currently don't have special

Re: Using imcc as JIT optimizer

2003-02-22 Thread Rafael Garcia-Suarez
Nicholas Clark wrote in perl.perl6.internals : > >> > r->score = r->use_count + (r->lhs_use_count << 2); >> > >> >r->score += 1 << (loop_depth * 3); [...] > I wonder how hard it would be to make a --fsummon-nasal-demons flag for gcc > that added trap code for all classes of undefined behavi

Re: Using imcc as JIT optimizer

2003-02-22 Thread Nicholas Clark
Please don't take the following as a criticism of imcc - I'm sure I manage to write code with things like this all the time. On Sat, Feb 22, 2003 at 08:13:59PM +0530, Gopal V wrote: > If memory serves me right, Leopold Toetsch wrote: > > r->score = r->use_count + (r->lhs_use_count << 2); > >

Re: stabs support

2003-02-22 Thread Leopold Toetsch
Steve Fink wrote: First -- wow, thanks! I tried out the stabs stuff for the JIT yesterday, and it's really helpful to be able to step through PASM code from within emacs's gud mode. Thank your for liking it :) I had one problem, though -- whenever stepping over a keyed op (eg "set I0, P0[3]"),

Re: Using imcc as JIT optimizer

2003-02-22 Thread Gopal V
If memory serves me right, Leopold Toetsch wrote: > > I'm assuming that the temporaries are the things being moved around here ?. > > > It is not so much a matter of moving things around, but a matter of > allocating (and renumbering) parrot (or for JIT) processor registers. Ok .. well I sort

Re: invoke

2003-02-22 Thread Leopold Toetsch
Steve Fink wrote: The invoke op is bothering me -- namely, it disturbs me that it implicitly operates on P0. I know that P0 is the correct register to use according to pdd03, but I dislike having it be implicit. The user is required to set the rest of the pdd03 conventions up manually, so I don't

Re: Using imcc as JIT optimizer

2003-02-22 Thread Leopold Toetsch
Gopal V wrote: If memory serves me right, Leopold Toetsch wrote: Ok .. well I sort of understood that the first N registers will be the ones MAPped ?. So I thought re-ordering/sorting was the operation performed. Yep. Register renumbering, so that the top N used (in terms of score) registers

Re: Objects, methods, attributes, properties, and other related frobnitzes

2003-02-22 Thread Benjamin Goldberg
Graham Barr wrote: > > On Fri, Feb 21, 2003 at 04:34:42PM -0500, Dan Sugalski wrote: > > If A isa B, we certainly wouldn't want to call A's AUTOLOAD on a > > method before we looked to see if B had a concrete instance of that > > method. > > Right. The best you could probably do is note where you

Re: non-inline text in parrot assembly?

2003-02-22 Thread Tupshin Harper
Leopold Toetsch wrote: You can use the .constant (PASM) or .const (IMCC) syntax, to keep strings visually together. leo Thanks. Apparently I'm being daft. I don't see any mention of pasm sections(constant or otherwise) in the pod docs, nor do any of the examples appear to use a constants sect

Re: Using imcc as JIT optimizer

2003-02-22 Thread Leopold Toetsch
Nicholas Clark wrote: r->score += 1 << (loop_depth * 3); until variables in 11 deep loops go undefined? Not undefined, but spilled. First *oops*, but second of course this all not final. I did change scoring several times from the code base AFAIK Angel Faus did implement. And we don't curre

Re: non-inline text in parrot assembly?

2003-02-22 Thread Leopold Toetsch
Tupshin Harper wrote: Leopold Toetsch wrote: You can use the .constant (PASM) or .const (IMCC) syntax, to keep strings visually together. Thanks. Apparently I'm being daft. I don't see any mention of pasm sections(constant or otherwise) in the pod docs, nor do any of the examples appear to u

Re: Using imcc as JIT optimizer

2003-02-22 Thread Nicholas Clark
On Sat, Feb 22, 2003 at 08:44:12PM -, Rafael Garcia-Suarez wrote: > Nicholas Clark wrote in perl.perl6.internals : > > > >> > r->score = r->use_count + (r->lhs_use_count << 2); > >> > > >> >r->score += 1 << (loop_depth * 3); > [...] > > I wonder how hard it would be to make a --fsummon-

Re: Using imcc as JIT optimizer

2003-02-22 Thread Nicholas Clark
On Sat, Feb 22, 2003 at 09:27:04PM +, nick wrote: > On Sat, Feb 22, 2003 at 08:44:12PM -, Rafael Garcia-Suarez wrote: > > What undefined behaviour are you referring to exactly ? the shift > > overrun ? AFAIK it's very predictable (given one int size). Cases of > > Will you accept a shortc

Re: non-inline text in parrot assembly?

2003-02-22 Thread gregor
Tupshin -- Parrot Byte Code (.pbc) files (aka packfiles) have multiple sections, but Parrot Assembly (.pasm) files do not reference them explicitly. Literal constants are *implicitly* placed in the constant section of the .pbc file upon assembly. The .constant or .const directives allow you to

Re: invoke

2003-02-22 Thread Steve Fink
On Feb-22, Leopold Toetsch wrote: > Steve Fink wrote: > > >So would anyone mind if I eliminated the zero-arg invoke op in favor > >of a one-arg invoke that takes a single PMC? (I may also have > >situations where I don't need to follow pdd03, and it would be more > >convenient to use a different re

Re: Objects, methods, attributes, properties, and other related frobnitzes

2003-02-22 Thread Benjamin Goldberg
Dan Sugalski wrote: > Benjamin Goldberg wrote: >> Graham Barr wrote: >>> Dan Sugalski wrote: If A isa B, we certainly wouldn't want to call A's AUTOLOAD on a method before we looked to see if B had a concrete instance of that method. >>> >>> Right. The best you could probably do is n

Re: Objects, methods, attributes, properties, and other related frobnitzes

2003-02-22 Thread Dan Sugalski
At 7:56 PM -0500 2/22/03, Benjamin Goldberg wrote: Dan Sugalski wrote: Benjamin Goldberg wrote: Graham Barr wrote: Dan Sugalski wrote: If A isa B, we certainly wouldn't want to call A's AUTOLOAD on a method before we looked to see if B had a concrete instance of that method. Right. The best

Re: [RFC] imcc calling conventions

2003-02-22 Thread Benjamin Goldberg
Dan Sugalski wrote: > > At 9:55 AM -0800 2/20/03, Steve Fink wrote: [snip] > >Or, as another stab at the same problem, does Parrot really need 32*4 > >registers? I keep thinking we might be better off with 16 of each > >type. But maybe I'm just grumbling. > > Yeah, 32 is a bunch. I've considered

access to partial registers?

2003-02-22 Thread Tupshin Harper
Sorry for all the questions...these are the trials and tribulations of dealing with a newbie trying to get up to speed with the current state of parrot. So here's another question: Is it possible and/or meaningful to read and write from a part of a register(e.g. a single word) in pasm? As with