develooper Front page | perl.perl5.porters | Postings from December 2000

Re: [PATCH] ++ 20% faster

Thread Previous | Thread Next
From:
Jarkko Hietaniemi
Date:
December 4, 2000 06:31
Subject:
Re: [PATCH] ++ 20% faster
Message ID:
20001204083104.B25386@chaos.wustl.edu
On Mon, Dec 04, 2000 at 12:17:27PM +0000, Nicholas Clark wrote:
> On Sun, Dec 03, 2000 at 06:08:41PM -0600, Jarkko Hietaniemi wrote:
> > On Sun, Dec 03, 2000 at 11:01:39PM +0000, Simon Cozens wrote:
> > > On Sun, Dec 03, 2000 at 09:47:59PM +0000, Nicholas Clark wrote:
> > > > Well, it would be if I sent it. I'm tired and making mistakes now.
> > > 
> > > Without the patch:
> > > u=2.31  s=0.38  cu=134.63  cs=11.73  scripts=261  tests=15242
> > > 
> > > With the patch:
> > > u=2.32  s=0.3  cu=135.14  cs=11.67  scripts=261  tests=15242
> > > 
> > > Was it really worth it?
> > 
> > IIRC the "efficiency" comes into play in one of Nicholas' platforms
> > (ARM Linux?) where double math is really, *really*, slow, and staying
> 
> Well, ARM most things, as most ARM cores aren't in chips with floating
> point. But most digital cell phones won't run perl, so it doesn't matter

A fact that is personally very embarrassing to me :-)

> there. [I'm told that 80% of digital cell phones in the last year have
> have ARM CPU cores in them.]

Sounds about right.

> > with integers if at all possible really pays off.
> > 
> > There's also the 'correctness' aspect.  If NVs smear your low order
> > bits when you need need them you might get fussy about it.
> 
> It's not going to be correct until everything in the core that does
> maths is vetted. And there should be scop for speed improvement. eg

Yes, the assumption 'NV better' runs deep.

> --- sv.c.orig   Sun Dec  3 20:01:20 2000
> +++ sv.c        Mon Dec  4 11:49:12 2000
> @@ -4651,9 +4651,9 @@
>      }
>      if (!(flags & SVp_POK) || !*SvPVX(sv)) {
>         if ((flags & SVTYPEMASK) < SVt_PVNV)
> -           sv_upgrade(sv, SVt_NV);
> -       SvNVX(sv) = 1.0;
> -       (void)SvNOK_only(sv);
> +           sv_upgrade(sv, SVt_IV);
> +       (void)SvIOK_only(sv);
> +       SvIVX(sv) = 1;
>         return;
>      }
>      d = SvPVX(sv);

Looks like fodder for the bleadperl.

-- 
$jhi++; # http://www.iki.fi/jhi/
        # There is this special biologist word we use for 'stable'.
        # It is 'dead'. -- Jack Cohen

Thread Previous | Thread Next


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