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

arigo at codespeak.net arigo at codespeak.net
Mon Mar 20 18:10:03 CET 2006


Author: arigo
Date: Mon Mar 20 18:09:56 2006
New Revision: 24624

Modified:
   pypy/dist/pypy/jit/hintannotator.py
   pypy/dist/pypy/jit/test/test_hint_annotation.py
Log:
'keepalive' support in the hint-annotator.


Modified: pypy/dist/pypy/jit/hintannotator.py
==============================================================================
--- pypy/dist/pypy/jit/hintannotator.py	(original)
+++ pypy/dist/pypy/jit/hintannotator.py	Mon Mar 20 18:09:56 2006
@@ -28,5 +28,8 @@
         vcontainerdef = self.bookkeeper.getvirtualcontainerdef(TYPE)
         return hintmodel.SomeLLAbstractContainer(vcontainerdef)
 
+    def consider_op_keepalive(self, hs_v):
+        pass
+
 
 _registeroperations(HintAnnotator.__dict__, hintmodel)

Modified: pypy/dist/pypy/jit/test/test_hint_annotation.py
==============================================================================
--- pypy/dist/pypy/jit/test/test_hint_annotation.py	(original)
+++ pypy/dist/pypy/jit/test/test_hint_annotation.py	Mon Mar 20 18:09:56 2006
@@ -7,18 +7,21 @@
 from pypy.rpython.objectmodel import hint
 from pypy.annotation import model as annmodel
 from pypy.annotation.policy import AnnotatorPolicy
+from pypy.translator.backendopt.inline import auto_inlining
 from pypy import conftest
 
 P_OOPSPEC = AnnotatorPolicy()
 P_OOPSPEC.oopspec = True
 
-def hannotate(func, argtypes, policy=None, annotator=False):
+def hannotate(func, argtypes, policy=None, annotator=False, inline=None):
     # build the normal ll graphs for ll_function
     t = TranslationContext()
     a = t.buildannotator()
     a.build_types(func, argtypes)
     rtyper = t.buildrtyper()
     rtyper.specialize()
+    if inline:
+        auto_inlining(t, inline)
     graph1 = graphof(t, func)
     # build hint annotator types
     hannotator = HintAnnotator(policy=policy)
@@ -409,6 +412,7 @@
         return acc
     assert ll_plus_minus("+-+", 0, 2) == 2
     hannotate(ll_plus_minus, [str, int, int])
+    hannotate(ll_plus_minus, [str, int, int], inline=999)
 
 def test_invalid_hint_1():
     S = lltype.GcStruct('S', ('x', lltype.Signed))



More information about the Pypy-commit mailing list