[pypy-svn] r40585 - in pypy/branch/jit-virtual-world/pypy/translator/c: . test

ac at codespeak.net ac at codespeak.net
Fri Mar 16 15:32:35 CET 2007


Author: ac
Date: Fri Mar 16 15:32:33 2007
New Revision: 40585

Modified:
   pypy/branch/jit-virtual-world/pypy/translator/c/funcgen.py
   pypy/branch/jit-virtual-world/pypy/translator/c/test/test_symbolic.py
Log:
Support is_early_constant operasion in C backend.

Modified: pypy/branch/jit-virtual-world/pypy/translator/c/funcgen.py
==============================================================================
--- pypy/branch/jit-virtual-world/pypy/translator/c/funcgen.py	(original)
+++ pypy/branch/jit-virtual-world/pypy/translator/c/funcgen.py	Fri Mar 16 15:32:33 2007
@@ -743,5 +743,7 @@
         counter_label = self.expr(op.args[1])
         return 'INSTRUMENT_COUNT(%s);' % counter_label
             
-
+    def OP_IS_EARLY_CONSTANT(self, op):
+        return self.expr(op.result)  + ' = 0;' # Allways false
+    
 assert not USESLOTS or '__dict__' not in dir(FunctionCodeGenerator)

Modified: pypy/branch/jit-virtual-world/pypy/translator/c/test/test_symbolic.py
==============================================================================
--- pypy/branch/jit-virtual-world/pypy/translator/c/test/test_symbolic.py	(original)
+++ pypy/branch/jit-virtual-world/pypy/translator/c/test/test_symbolic.py	Fri Mar 16 15:32:33 2007
@@ -110,3 +110,16 @@
     fn = t.compile_c()
     res = fn()
     assert res == 42
+
+def test_is_early_constant():
+    from pypy.rlib import objectmodel
+    def f(x):
+        if objectmodel._is_early_constant(x):
+            return 42
+        return 0
+    
+
+    fn, t = getcompiled(f, [int])
+    res = fn(5)
+    assert res == 0
+


More information about the pypy-svn mailing list