[pypy-svn] r37614 - in pypy/dist/pypy/jit/hintannotator: . test

arigo at codespeak.net arigo at codespeak.net
Tue Jan 30 17:23:13 CET 2007


Author: arigo
Date: Tue Jan 30 17:23:06 2007
New Revision: 37614

Modified:
   pypy/dist/pypy/jit/hintannotator/model.py
   pypy/dist/pypy/jit/hintannotator/test/test_annotator.py
Log:
Fix for r37611: deepfrozen across cast_pointer.


Modified: pypy/dist/pypy/jit/hintannotator/model.py
==============================================================================
--- pypy/dist/pypy/jit/hintannotator/model.py	(original)
+++ pypy/dist/pypy/jit/hintannotator/model.py	Tue Jan 30 17:23:06 2007
@@ -327,6 +327,10 @@
         FIELD_TYPE = getattr(S, hs_fieldname.const)
         return SomeLLAbstractVariable(lltype.Ptr(FIELD_TYPE), hs_v1.deepfrozen)
 
+    def cast_pointer(hs_v1):
+        RESTYPE = getbookkeeper().current_op_concretetype()
+        return SomeLLAbstractVariable(RESTYPE, hs_v1.deepfrozen)
+
     def indirect_call(hs_v1, *args_hs):
         hs_graph_list = args_hs[-1]
         args_hs = args_hs[:-1]
@@ -452,6 +456,16 @@
                                       myorigin=origin,
                                       deepfrozen=hs_c1.deepfrozen)    
 
+    def cast_pointer(hs_c1):
+        bk = getbookkeeper()
+        origin = bk.myorigin()
+        d = setadd(hs_c1.origins, origin)
+        RESTYPE = bk.current_op_concretetype()
+        return SomeLLAbstractConstant(RESTYPE, d,
+                                      eager_concrete = hs_c1.eager_concrete,
+                                      myorigin = origin,
+                                      deepfrozen = hs_c1.deepfrozen)
+
 
 class __extend__(SomeLLAbstractContainer):
 
@@ -687,7 +701,6 @@
     return SomeLLAbstractConstant(RESTYPE, d,
                                   eager_concrete = hs_c1.eager_concrete,
                                   myorigin = origin)
-                                  #deepfrozen = hs_c1.deepfrozen)
 
 def const_binary((hs_c1, hs_c2)):
     #XXX unsure hacks
@@ -699,7 +712,6 @@
                                   eager_concrete = hs_c1.eager_concrete or
                                                    hs_c2.eager_concrete,
                                   myorigin = origin)
-                                  #deepfrozen = hs_c1.deepfrozen and hs_c2.deepfrozen)
 
 def setup(oplist, ValueCls, var_fn, ConstantCls, const_fn):
     for name in oplist:

Modified: pypy/dist/pypy/jit/hintannotator/test/test_annotator.py
==============================================================================
--- pypy/dist/pypy/jit/hintannotator/test/test_annotator.py	(original)
+++ pypy/dist/pypy/jit/hintannotator/test/test_annotator.py	Tue Jan 30 17:23:06 2007
@@ -705,7 +705,6 @@
 
 
 def test_cast_pointer_keeps_deepfreeze():
-    py.test.skip("does not work")
 
     class A(object):
         pass
@@ -729,5 +728,3 @@
 
     hs = hannotate(ll_function, [int], policy=P_NOVIRTUAL)
     assert hs.deepfrozen
-
-



More information about the Pypy-commit mailing list