[pypy-svn] pypy default: Add another test for this it was already working.

alex_gaynor commits-noreply at bitbucket.org
Mon Mar 14 22:03:06 CET 2011


Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: 
Changeset: r42643:10ee8ee24302
Date: 2011-03-14 17:01 -0400
http://bitbucket.org/pypy/pypy/changeset/10ee8ee24302/

Log:	Add another test for this it was already working.

diff --git a/pypy/jit/metainterp/test/test_optimizeopt.py b/pypy/jit/metainterp/test/test_optimizeopt.py
--- a/pypy/jit/metainterp/test/test_optimizeopt.py
+++ b/pypy/jit/metainterp/test/test_optimizeopt.py
@@ -5130,6 +5130,23 @@
         """
         self.optimize_loop(ops, expected)
 
+    def test_strlen_positive(self):
+        ops = """
+        [p0]
+        i0 = strlen(p0)
+        i1 = int_ge(i0, 0)
+        guard_true(i1) []
+        i2 = int_gt(i0, -1)
+        guard_true(i2) []
+        jump(p0)
+        """
+        expected = """
+        [p0]
+        i0 = strlen(p0)
+        jump(p0)
+        """
+        self.optimize_loop(ops, expected)
+
     # ----------
     def optimize_strunicode_loop_extradescrs(self, ops, optops, preamble=None):
         from pypy.jit.metainterp.optimizeopt import string

diff --git a/pypy/jit/metainterp/optimizeopt/intbounds.py b/pypy/jit/metainterp/optimizeopt/intbounds.py
--- a/pypy/jit/metainterp/optimizeopt/intbounds.py
+++ b/pypy/jit/metainterp/optimizeopt/intbounds.py
@@ -269,15 +269,14 @@
         v1 = self.getvalue(op.result)
         v1.intbound.make_ge(IntLowerBound(0))
 
+    optimize_STRLEN = optimize_UNICODELEN = optimize_ARRAYLEN_GC
+
     def optimize_STRGETITEM(self, op):
         self.emit_operation(op)
         v1 = self.getvalue(op.result)
         v1.intbound.make_ge(IntLowerBound(0))
         v1.intbound.make_lt(IntUpperBound(256))
 
-    optimize_STRLEN = optimize_ARRAYLEN_GC
-    optimize_UNICODELEN = optimize_ARRAYLEN_GC
-
     def make_int_lt(self, box1, box2):
         v1 = self.getvalue(box1)
         v2 = self.getvalue(box2)


More information about the Pypy-commit mailing list