[pypy-dev] Slow int code

Alex Gaynor alex.gaynor at gmail.com
Wed Feb 27 21:23:33 CET 2013


In that context large longs means HUNDREDS or THOUSANDS of bits, not 64 :)
Can you show us a full runnable example that illustrates this?

Alex


On Wed, Feb 27, 2013 at 12:10 PM, Roger Flores <aidembb at yahoo.com> wrote:

> Hi guys.  I've been looking at two simple routines using jitviewer to
> figure out why they're so much slower than expected.
>
>
> I've also noticed that http://pypy.org/performance.html has the line "Bad
> examples include doing computations with
> large longs – which is performed by unoptimizable support code.".  I'm
> worried that my 32 bit int code is falling into this, and I'm wondering
> what I can do to avoid it?
>
> Trivial code like
>
> if (self.low ^ self.high) & 0x80000000 == 0:
>
>
> is expanding into several dozen asm instructions.  I'm suspecting that
> lines like
>
> self.low = (self.low << 1) & 0xffffffff
>
>
> with it's shift left are convincing the jit to consider the int to need 64
> bits (large long?) instead of 32.
>
>
> Ideas?  The asm is clearly operating on QWORDs and calling routines to do
> the bit arithmetic instead of single instructions.  Is this what that line
> in performance.html is warning about?
>
>
>
> -Roger
>
> BTW Fijal's jitviewer is a *must see* for anyone interested in how pypy
> makes their code fast!
>
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> http://mail.python.org/mailman/listinfo/pypy-dev
>



-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20130227/e8aa0b52/attachment.html>


More information about the pypy-dev mailing list