[PyPy-issue] [issue640] Possible optimization in FOR_ITER on a constant tuple
Alex Gaynor
pypy-dev-issue at codespeak.net
Tue Feb 22 22:58:59 CET 2011
New submission from Alex Gaynor <alex.gaynor at gmail.com>:
Given:
for x in (1, 2, 3):
i += x
We currently generate:
FOR_ITER to 47
guard(i5 is 1)
guard(guard_class(p7, 146344448))
p14 = ((pypy.objspace.std.iterobject.W_FastTupleIterObject)p7).inst_tupleitems
guard(guard_nonnull(p14))
i15 = ((pypy.objspace.std.iterobject.W_AbstractSeqIterObject)p7).inst_index
i16 = arraylen_gc(p14)
i17 = i15 >= i16
guard(i17 is false)
p18 = getarrayitem_gc(p14, i15)
i20 = i15 + 1
This is slightly inefficient in a few places, the getitem, for tupleitems, could
be eliminated, as could the arraylen.
----------
effort: ???
messages: 2155
nosy: agaynor, pypy-issue
priority: wish
release: ???
status: unread
title: Possible optimization in FOR_ITER on a constant tuple
_______________________________________________________
PyPy development tracker <pypy-dev-issue at codespeak.net>
<https://codespeak.net/issue/pypy-dev/issue640>
_______________________________________________________
More information about the Pypy-issue
mailing list