Author: Antonio Cuni <[email protected]>
Branch: autoreds
Changeset: r58843:60cf0cbf40a8
Date: 2012-11-12 18:27 +0100
http://bitbucket.org/pypy/pypy/changeset/60cf0cbf40a8/

Log:    make sure that we cannot use autoreds with confirm_enter_jit

diff --git a/pypy/jit/metainterp/warmspot.py b/pypy/jit/metainterp/warmspot.py
--- a/pypy/jit/metainterp/warmspot.py
+++ b/pypy/jit/metainterp/warmspot.py
@@ -259,6 +259,7 @@
                 jitdriver = op.args[1].value
                 if not jitdriver.autoreds:
                     continue
+                assert jitdriver.confirm_enter_jit is None
                 # compute the set of live variables before the jit_marker
                 alive_v = set(block.inputargs)
                 for op1 in block.operations:
diff --git a/pypy/rlib/jit.py b/pypy/rlib/jit.py
--- a/pypy/rlib/jit.py
+++ b/pypy/rlib/jit.py
@@ -456,6 +456,7 @@
             self.autoreds = True
             self.reds = []
             self.numreds = None # see warmspot.autodetect_jit_markers_redvars
+            assert confirm_enter_jit is None, 'cannot use automatic reds if 
confirm_enter_jit is given'
         elif reds is not None:
             self.autoreds = False
             self.reds = reds
diff --git a/pypy/rlib/test/test_jit.py b/pypy/rlib/test/test_jit.py
--- a/pypy/rlib/test/test_jit.py
+++ b/pypy/rlib/test/test_jit.py
@@ -15,6 +15,15 @@
         pass
     assert fn.oopspec == 'foobar'
 
+def test_jitdriver_autoreds():
+    driver = JitDriver(greens=['foo'], reds='auto')
+    assert driver.autoreds
+    assert driver.reds == []
+    assert driver.numreds is None
+    #
+    py.test.raises(AssertionError, "JitDriver(greens=['foo'], reds='auto', 
confirm_enter_jit='something')")
+    
+    
 
 class BaseTestJIT(BaseRtypingTest):
     def test_hint(self):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to