develooper Front page | perl.perl6.internals | Postings from February 2001

Re: PDD 2, vtables

From:
Nicholas Clark
Date:
February 8, 2001 04:12
Subject:
Re: PDD 2, vtables
Message ID:
20010208121201.Y63724@plum.flirble.org
On Wed, Feb 07, 2001 at 01:24:27PM -0500, Dan Sugalski wrote:
> At 06:12 PM 2/7/2001 +0000, Nicholas Clark wrote:

> >But I don't like the thought of going in and out of a lot of generic
> >routines for
> >
> >$a = 3;
> >$a += 2;
> >
> >when the integer scalar ought to know what the inside of another integer
> >scalar looks like, and that 2 + 3 doesn't overflow.
>
> That particular case would get caught by the optimizer (I'd hope) so it'd 
> not be an issue anyway.

Oops. Should have written it as

sub foo {
  $[0] += 2;
}

and somewhere else

$a = 3; &foo ($a);

but I agree - we need to time these things, not talk about them

> >Hmm. += isn't another opcode
> >it's a special case of a = b + c where the PMCs for a and b are the same
> >thing. And I see no real reason why it can't be part of the + entry.
> 
> Whether a special case in the code would get a speedup or not's up in the 
> air. (Is the test and branch faster than a generic doing it routine?) I'd 
> want to test that and see before I decided.

Yes, we're trading size [data cache (larger virtual tables on scalars) +
instruction cache (2 routines)] versus branch slowdown.  Or probably
something more complicated than that.

Hence your approach of make it flexible enough and try both.

Nicholas Clark



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About