More registers

2 views
Skip to first unread message

Leopold Toetsch

unread,
Apr 13, 2005, 6:05:46 AM4/13/05
to Perl 6 Internals, Dan Sugalski
As of rev 7824 Parrot *should* run with NUM_REGISTERS defined as 64 too.
Only some stack tests are failing that do half frame push and pop tests.

imcc/t/reg/spill_2 just spills 4 registers instead of 36.

Dan, could you please try that with one of your big subroutines and
report compile times and functionality.

Thanks,
leo

Dan Sugalski

unread,
Apr 13, 2005, 2:05:40 PM4/13/05
to Leopold Toetsch, Perl 6 Internals

Sure. I'll sync up and give it a shot.
--
Dan

--------------------------------------it's like this-------------------
Dan Sugalski even samurai
d...@sidhe.org have teddy bears and even
teddy bears get drunk

Dan Sugalski

unread,
Apr 14, 2005, 9:33:04 AM4/14/05
to Leopold Toetsch, Perl 6 Internals
At 2:05 PM -0400 4/13/05, Dan Sugalski wrote:
>At 12:05 PM +0200 4/13/05, Leopold Toetsch wrote:
>>As of rev 7824 Parrot *should* run with NUM_REGISTERS defined as 64
>>too. Only some stack tests are failing that do half frame push and
>>pop tests.
>>
>>imcc/t/reg/spill_2 just spills 4 registers instead of 36.
>>
>>Dan, could you please try that with one of your big subroutines and
>>report compile times and functionality.
>
>Sure. I'll sync up and give it a shot.

Okay, after doing a CVS syncup (I don't have subversion set up yet) I
find there's no difference to speak of -- still takes about 390
minutes on the big form. (If the CVS repository's not up to date I
can see about getting subversion installed and working)

Jens Rieks

unread,
Apr 14, 2005, 9:53:34 AM4/14/05
to perl6-i...@perl.org, Dan Sugalski
On Thursday 14 April 2005 15:33, Dan Sugalski wrote:
> (If the CVS repository's not up to date I
> can see about getting subversion installed and working)
Yes, the CVS repository is not updated anymore.

jens

Dan Sugalski

unread,
Apr 14, 2005, 10:04:55 AM4/14/05
to Jens Rieks, perl6-i...@perl.org

Swell -- I thought when we were switching over to subversion we were
going to make sure that the CVS repository was kept up to date.

I guess I'll see about digging up a subversion client and see where I
go from there.

Leopold Toetsch

unread,
Apr 14, 2005, 10:42:44 AM4/14/05
to Dan Sugalski, perl6-i...@perl.org
Dan Sugalski <d...@sidhe.org> wrote:
> At 3:53 PM +0200 4/14/05, Jens Rieks wrote:
>>Yes, the CVS repository is not updated anymore.

> Swell

You need just this part:

> Date: Wed Apr 13 03:04:41 2005
> New Revision: 7824

> Modified:
> trunk/imcc/reg_alloc.c
> Log:
> allow NUM_REGISTERS = 64

> Modified: trunk/imcc/reg_alloc.c
>==============================================================================
> --- trunk/imcc/reg_alloc.c (original)
> +++ trunk/imcc/reg_alloc.c Wed Apr 13 03:04:41 2005
> @@ -927,8 +927,8 @@
> if (avail[c] && assignable[t][c - 1])
> return c;
> }
> - /* 2) try upper non-volatiles, 16...31 */
> - for (c = 17; c <= 32; c++)
> + /* 2) try upper non-volatiles, 16...NUM_REGISTERS-1 */
> + for (c = 17; c <= NUM_REGISTERS; c++)
> if (avail[c])
> return c;
> return 0;

leo

Dan Sugalski

unread,
Apr 14, 2005, 4:44:31 PM4/14/05
to l...@toetsch.at, perl6-i...@perl.org
At 4:42 PM +0200 4/14/05, Leopold Toetsch wrote:
>Dan Sugalski <d...@sidhe.org> wrote:
>> At 3:53 PM +0200 4/14/05, Jens Rieks wrote:
>>>Yes, the CVS repository is not updated anymore.
>
>> Swell
>
>You need just this part:
>
>> Date: Wed Apr 13 03:04:41 2005
>> New Revision: 7824
>
>> Modified:
> > trunk/imcc/reg_alloc.c

Ah, OK. With that part in, the time's cut from 390 minutes to 295
minutes. A 25% cutback, not bad.

Gregor N. Purdy

unread,
Apr 20, 2005, 2:37:31 AM4/20/05
to Dan Sugalski, Leopold Toetsch, Perl 6 Internals
Leo --

I had posted a program a while ago that generates large
fake programs for testing such things. Did that not help?

I think I still have it in my working directory if you'd
like to have a peek at it...


Regards,

-- Gregor

Leopold Toetsch

unread,
Apr 20, 2005, 3:30:35 AM4/20/05
to Gregor N. Purdy, perl6-i...@perl.org
Gregor N. Purdy <gre...@focusresearch.com> wrote:
> Leo --

> I had posted a program a while ago that generates large
> fake programs for testing such things. Did that not help?

I've that program or a successor of it still around somewhere. But
unfortunately it doesn't help. The register usage pattern of the
simulation is totally different: it creates too much long ranged globals
and too much interferences between registers compared to RL programs
like Dan's Big Subs.

Such a simulation should create much more lines (selectable) almost only
temporary register access inside basic blocks and some access to
long-ranged globals within reasonable (tweakable) limits i.e. from
around 16 to e.g. 64.

leo

Reply all
Reply to author
Forward
0 new messages