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 <aide...@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@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
_______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev