[pypy-commit] pypy jit-leaner-frontend: remove descr after parse_loop in assert_vectorize, this is need to successfully convert the loop to a trace obj

plan_rich pypy.commits at gmail.com
Fri Mar 25 07:12:06 EDT 2016


Author: Richard Plangger <planrichi at gmail.com>
Branch: jit-leaner-frontend
Changeset: r83343:2bbf906956f4
Date: 2016-03-25 11:08 +0100
http://bitbucket.org/pypy/pypy/changeset/2bbf906956f4/

Log:	remove descr after parse_loop in assert_vectorize, this is need to
	successfully convert the loop to a trace obj

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py
@@ -82,12 +82,17 @@
 
     def assert_vectorize(self, loop, expected_loop, call_pure_results=None):
         jump = ResOperation(rop.LABEL, loop.jump.getarglist(), loop.jump.getdescr())
-        trace = Trace(loop.label, jump, loop.operations)
-        trace = self.convert_loop_to_packed(loop)
+        # convert_loop_to_trace assumes that there are no descriptors
+        # but because this optimization pass is after the normal optimization pass
+        # parse_loop already set artificial resume descr!
+        for op in loop.operations:
+            if op.is_guard():
+                op.setdescr(None)
+        trace = convert_loop_to_trace(loop)
         compile_data = compile.LoopCompileData(trace, loop.jump.getarglist())
         state = self._do_optimize_loop(compile_data)
         loop.label = state[0].label_op
-        loop.opererations = state[1]
+        loop.operations = state[1]
         self.assert_equal(loop, expected_loop)
 
     def vectoroptimizer(self, loop):


More information about the pypy-commit mailing list