[pypy-commit] pypy vecopt-merge: reverted change

plan_rich noreply at buildbot.pypy.org
Thu Oct 8 13:40:53 CEST 2015


Author: Richard Plangger <planrichi at gmail.com>
Branch: vecopt-merge
Changeset: r80045:d27d8ef22c97
Date: 2015-10-08 13:38 +0200
http://bitbucket.org/pypy/pypy/changeset/d27d8ef22c97/

Log:	reverted change

diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -414,7 +414,6 @@
             if arg.is_vector():
                 loc = self.loc(arg)
                 self.assembler.guard_vector(op, self.loc(arg), true)
-                return
             else:
                 self.load_condition_into_cc(arg)
             self.perform_guard(op, [], None)
diff --git a/rpython/jit/backend/x86/test/test_x86vector.py b/rpython/jit/backend/x86/test/test_x86vector.py
--- a/rpython/jit/backend/x86/test/test_x86vector.py
+++ b/rpython/jit/backend/x86/test/test_x86vector.py
@@ -89,3 +89,4 @@
 
         res = self.do_test(callback) & 0xffffffff
         assert res == 22
+
diff --git a/rpython/jit/metainterp/test/test_vector.py b/rpython/jit/metainterp/test/test_vector.py
--- a/rpython/jit/metainterp/test/test_vector.py
+++ b/rpython/jit/metainterp/test/test_vector.py
@@ -517,5 +517,27 @@
         res = self.meta_interp(f, [22], vec_all=True)
         assert res == f(22)
 
+    def test_guard_test_location_assert(self):
+        myjitdriver = JitDriver(greens = [], reds = 'auto')
+        T1 = lltype.Array(rffi.SIGNED, hints={'nolength': True})
+        def f(size):
+            vector_a = lltype.malloc(T1, size, flavor='raw', zero=True)
+            for i in range(size):
+                vector_a[i] = 0
+            i = 0
+            breaks = 0
+            while i < size:
+                myjitdriver.jit_merge_point()
+                a = vector_a[i]
+                if a:
+                    breaks = 1
+                    break
+                del a
+                i += 1
+            lltype.free(vector_a, flavor='raw')
+            return breaks
+        res = self.meta_interp(f, [22], vec_all=True, vec_guard_ratio=5)
+        assert res == f(22)
+
 class TestLLtype(LLJitMixin, VectorizeTests):
     pass
diff --git a/rpython/rlib/jit.py b/rpython/rlib/jit.py
--- a/rpython/rlib/jit.py
+++ b/rpython/rlib/jit.py
@@ -581,7 +581,7 @@
               'vec_cost': 0,
               'vec_length': 60,
               'vec_ratio': 2,
-              'vec_guard_ratio': 3,
+              'vec_guard_ratio': 5,
               }
 unroll_parameters = unrolling_iterable(PARAMETERS.items())
 


More information about the pypy-commit mailing list