[pypy-svn] r64025 - in pypy/branch/pyjitpl5-simplify/pypy: jit/metainterp module/pypyjit rpython rpython/lltypesystem

arigo at codespeak.net arigo at codespeak.net
Mon Apr 13 14:16:23 CEST 2009


Author: arigo
Date: Mon Apr 13 14:16:21 2009
New Revision: 64025

Modified:
   pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py
   pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py
   pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py
   pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py
   pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py
Log:
Complete the list of oopspec's, as needed to translate PyPy without the
hack in the policy.


Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py	(original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py	Mon Apr 13 14:16:21 2009
@@ -2,6 +2,7 @@
 from pypy.rpython.ootypesystem import ootype
 from pypy.rpython import rlist
 from pypy.rpython.lltypesystem import rdict, rstr
+from pypy.rpython.lltypesystem import rlist as lltypesystem_rlist
 from pypy.rpython.llinterp import LLInterpreter
 from pypy.rpython.extregistry import ExtRegistryEntry
 from pypy.translator.simplify import get_funcobj
@@ -121,7 +122,11 @@
 _ll_2_list_append = rlist.ll_append
 _ll_2_list_extend = rlist.ll_extend
 _ll_3_list_insert = rlist.ll_insert_nonneg
+_ll_4_list_setslice = rlist.ll_listsetslice
 _ll_2_list_delslice_startonly = rlist.ll_listdelslice_startonly
+_ll_3_list_delslice_startstop = rlist.ll_listdelslice_startstop
+_ll_1_list_list2fixed = lltypesystem_rlist.ll_list2fixed
+_ll_2_list_inplace_mul = rlist.ll_inplace_mul
 
 _ll_2_list_getitem_foldable = _ll_2_list_getitem
 _ll_1_list_len_foldable     = _ll_1_list_len
@@ -132,6 +137,7 @@
 
 _ll_2_dict_getitem = rdict.ll_dict_getitem
 _ll_3_dict_setitem = rdict.ll_dict_setitem
+_ll_2_dict_delitem = rdict.ll_dict_delitem
 _ll_3_dict_setdefault = rdict.ll_setdefault
 _ll_2_dict_contains = rdict.ll_contains
 _ll_3_dict_get = rdict.ll_get
@@ -146,8 +152,6 @@
 _ll_2_newdictkvi.need_result_type = True
 _ll_1_dict_copy = rdict.ll_copy
 _ll_1_dict_clear = rdict.ll_clear
-_ll_4_list_setslice = rlist.ll_listsetslice
-_ll_3_list_delslice_startstop = rlist.ll_listdelslice_startstop
 _ll_2_dict_update = rdict.ll_update
 
 _ll_5_string_copy_contents = rstr.copy_string_contents

Modified: pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py	(original)
+++ pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py	Mon Apr 13 14:16:21 2009
@@ -47,14 +47,12 @@
         # string builder interface
         if mod == 'pypy.rpython.lltypesystem.rbuilder':
             return False
-        if (mod == 'pypy.rpython.rlist' or
-            mod == 'pypy.rpython.lltypesystem.rdict' or
-            mod == 'pypy.rpython.lltypesystem.rlist'):
-            # non oopspeced list or dict operations are helpers
-            return False
-        if func.__name__ == 'll_update':
-            return False
-        #if mod in forbidden_modules:
+        #if (mod == 'pypy.rpython.rlist' or
+        #    mod == 'pypy.rpython.lltypesystem.rdict' or
+        #    mod == 'pypy.rpython.lltypesystem.rlist'):
+        #    # non oopspeced list or dict operations are helpers
+        #    return False
+        #if func.__name__ == 'll_update':
         #    return False
         return super(PyPyJitPolicy, self).look_inside_function(func)
 

Modified: pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py	(original)
+++ pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py	Mon Apr 13 14:16:21 2009
@@ -483,6 +483,7 @@
     num_entries = len(d.entries)
     if num_entries > DICT_INITSIZE and d.num_items < num_entries / 4:
         ll_dict_resize(d)
+ll_dict_delitem.oopspec = 'dict.delitem(d, key)'
 
 def ll_dict_resize(d):
     old_entries = d.entries

Modified: pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py	(original)
+++ pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py	Mon Apr 13 14:16:21 2009
@@ -387,6 +387,7 @@
         for i in range(n):
             newitems[i] = olditems[i]
         return newitems
+ll_list2fixed.oopspec = 'list.list2fixed(l)'
 
 def ll_list2fixed_exact(l):
     return l.items

Modified: pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py	(original)
+++ pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py	Mon Apr 13 14:16:21 2009
@@ -1011,6 +1011,7 @@
             i += 1
         j += length
     return res
+ll_inplace_mul.oopspec = 'list.inplace_mul(l, factor)'
 
 
 def ll_mul(RESLIST, l, factor):



More information about the Pypy-commit mailing list