[pypy-svn] r34878 - pypy/dist/pypy/jit/tl

pedronis at codespeak.net pedronis at codespeak.net
Wed Nov 22 20:06:26 CET 2006


Author: pedronis
Date: Wed Nov 22 20:06:25 2006
New Revision: 34878

Modified:
   pypy/dist/pypy/jit/tl/tlc.py
Log:
(arre, pedronis)

started experimenting with adding some promotes in the tlc: tests still pass and promotions occurs
but we force virtual int boxes too often, we need to investigate that...



Modified: pypy/dist/pypy/jit/tl/tlc.py
==============================================================================
--- pypy/dist/pypy/jit/tl/tlc.py	(original)
+++ pypy/dist/pypy/jit/tl/tlc.py	Wed Nov 22 20:06:25 2006
@@ -184,10 +184,14 @@
 
             elif opcode == SUB:
                 a, b = stack.pop(), stack.pop()
+                hint(a.__class__, promote=True)
+                hint(b.__class__, promote=True)
                 stack.append(b.sub(a))
 
             elif opcode == MUL:
                 a, b = stack.pop(), stack.pop()
+                hint(a.__class__, promote=True)
+                hint(b.__class__, promote=True)
                 stack.append(b.mul(a))
 
             elif opcode == DIV:
@@ -208,6 +212,8 @@
 
             elif opcode == LE:
                 a, b = stack.pop(), stack.pop()
+                hint(a.__class__, promote=True)
+                hint(b.__class__, promote=True)
                 stack.append(IntObj(not a.lt(b)))
 
             elif opcode == GT:
@@ -219,7 +225,9 @@
                 stack.append(IntObj(not b.lt(a)))
 
             elif opcode == BR_COND:
-                if stack.pop().t():
+                cond = stack.pop()
+                hint(cond, promote=True)
+                if cond.t():
                     pc += char2int(code[pc])
                 pc += 1
 



More information about the Pypy-commit mailing list