Author: stian Branch: improve-rbigint Changeset: r56319:e23369402d82 Date: 2012-06-23 00:41 +0200 http://bitbucket.org/pypy/pypy/changeset/e23369402d82/
Log: Remove the special casing in _x_add, it's really the same (only that by doing this, we also got to do two extra checks, which makes it slower) diff --git a/pypy/rlib/rbigint.py b/pypy/rlib/rbigint.py --- a/pypy/rlib/rbigint.py +++ b/pypy/rlib/rbigint.py @@ -763,20 +763,13 @@ """ Add the absolute values of two bigint integers. """ size_a = a.numdigits() - - # Special casing. This is good, sometimes. - # The sweetspot is hard to find. But it's someplace between 60 and 70. - if size_a < 65 and a is b: - return a.lqshift(1) - - size_b = b.numdigits() # Ensure a is the larger of the two: if size_a < size_b: a, b = b, a size_a, size_b = size_b, size_a - z = rbigint([NULLDIGIT] * (a.numdigits() + 1), 1) + z = rbigint([NULLDIGIT] * (size_a + 1), 1) i = 0 carry = r_uint(0) while i < size_b: diff --git a/pypy/translator/goal/targetbigintbenchmark.py b/pypy/translator/goal/targetbigintbenchmark.py --- a/pypy/translator/goal/targetbigintbenchmark.py +++ b/pypy/translator/goal/targetbigintbenchmark.py @@ -10,7 +10,8 @@ """ A cutout with some benchmarks. Pypy default: - <No run yet> + 8.637287 + 12.211942 18.270045 2.512140 14.148920 @@ -24,7 +25,7 @@ 1.635417 12.023154 14.320596 - 6.464143 + 6.439088 """ _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit