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

Re: PDD 2, vtables

Nicholas Clark
February 8, 2001 04:12
Re: PDD 2, vtables
Message ID:
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 Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About