[pypy-svn] r69280 - pypy/trunk/pypy/rpython

fijal at codespeak.net fijal at codespeak.net
Sat Nov 14 14:39:45 CET 2009


Author: fijal
Date: Sat Nov 14 14:39:44 2009
New Revision: 69280

Modified:
   pypy/trunk/pypy/rpython/normalizecalls.py
   pypy/trunk/pypy/rpython/rpbc.py
Log:
(arigo, fijal) Improve speec of jitting by not looping over all
callfamilies (1/2)


Modified: pypy/trunk/pypy/rpython/normalizecalls.py
==============================================================================
--- pypy/trunk/pypy/rpython/normalizecalls.py	(original)
+++ pypy/trunk/pypy/rpython/normalizecalls.py	Sat Nov 14 14:39:44 2009
@@ -14,8 +14,12 @@
 
 def normalize_call_familes(annotator):
     for callfamily in annotator.bookkeeper.pbc_maximal_call_families.infos():
+        if not callfamily.modified:
+            assert callfamily.normalized
+            continue
         normalize_calltable(annotator, callfamily)
         callfamily.normalized = True
+        callfamily.modified = False
 
 def normalize_calltable(annotator, callfamily):
     """Try to normalize all rows of a table."""

Modified: pypy/trunk/pypy/rpython/rpbc.py
==============================================================================
--- pypy/trunk/pypy/rpython/rpbc.py	(original)
+++ pypy/trunk/pypy/rpython/rpbc.py	Sat Nov 14 14:39:44 2009
@@ -484,7 +484,8 @@
                 try:
                     thisattrvalue = frozendesc.attrcache[attr]
                 except KeyError:
-                    warning("Desc %r has no attribute %r" % (frozendesc, attr))
+                    if not frozendesc.has_attribute(attr):
+                        warning("Desc %r has no attribute %r" % (frozendesc, attr))
                     continue
                 llvalue = r_value.convert_const(thisattrvalue)
                 setattr(result, mangled_name, llvalue)



More information about the Pypy-commit mailing list