Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: Changeset: r48196:ba7afb49a544 Date: 2011-10-18 10:48 +0200 http://bitbucket.org/pypy/pypy/changeset/ba7afb49a544/
Log: slightly pointless micro-optimization, but I found the adjective "quick" in this comment too ironic diff --git a/pypy/jit/metainterp/optimizeopt/rewrite.py b/pypy/jit/metainterp/optimizeopt/rewrite.py --- a/pypy/jit/metainterp/optimizeopt/rewrite.py +++ b/pypy/jit/metainterp/optimizeopt/rewrite.py @@ -139,13 +139,13 @@ self.make_constant_int(op.result, 0) else: for lhs, rhs in [(v1, v2), (v2, v1)]: - # x & (x -1) == 0 is a quick test for power of 2 - if (lhs.is_constant() and - (lhs.box.getint() & (lhs.box.getint() - 1)) == 0): - new_rhs = ConstInt(highest_bit(lhs.box.getint())) - op = op.copy_and_change(rop.INT_LSHIFT, args=[rhs.box, new_rhs]) - break - + if lhs.is_constant(): + x = lhs.box.getint() + # x & (x - 1) == 0 is a quick test for power of 2 + if x & (x - 1) == 0: + new_rhs = ConstInt(highest_bit(lhs.box.getint())) + op = op.copy_and_change(rop.INT_LSHIFT, args=[rhs.box, new_rhs]) + break self.emit_operation(op) def optimize_UINT_FLOORDIV(self, op): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit