Author: Alex Gaynor <[email protected]>
Branch: dynamic-specialized-tuple
Changeset: r54747:e0f2cfe66872
Date: 2012-04-25 09:19 -0400
http://bitbucket.org/pypy/pypy/changeset/e0f2cfe66872/
Log: promote the shape of a tuple on a read when the index is constant
diff --git a/pypy/jit/codewriter/jtransform.py
b/pypy/jit/codewriter/jtransform.py
--- a/pypy/jit/codewriter/jtransform.py
+++ b/pypy/jit/codewriter/jtransform.py
@@ -496,7 +496,6 @@
def rewrite_op_hint(self, op):
hints = op.args[1].value
if hints.get('promote') and op.args[0].concretetype is not lltype.Void:
- assert op.args[0].concretetype != lltype.Ptr(rstr.STR)
kind = getkind(op.args[0].concretetype)
op0 = SpaceOperation('-live-', [], None)
op1 = SpaceOperation('%s_guard_value' % kind, [op.args[0]], None)
diff --git a/pypy/objspace/std/tupleobject.py b/pypy/objspace/std/tupleobject.py
--- a/pypy/objspace/std/tupleobject.py
+++ b/pypy/objspace/std/tupleobject.py
@@ -49,6 +49,8 @@
def getitem(self, space, i):
from pypy.objspace.std.tupletype import read_obj
+ if jit.isconstant(i):
+ jit.promote(self.tuplestorage.getshape())
return read_obj(space, self.tuplestorage, i)
registerimplementation(W_TupleObject)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit