[pypy-commit] extradoc extradoc: consider some more operations as get/set, consider uint operations as numeric

bivab noreply at buildbot.pypy.org
Fri Jul 27 10:23:07 CEST 2012


Author: David Schneider <david.schneider at picle.org>
Branch: extradoc
Changeset: r4377:a21f03c85912
Date: 2012-07-26 22:07 +0200
http://bitbucket.org/pypy/extradoc/changeset/a21f03c85912/

Log:	consider some more operations as get/set, consider uint operations
	as numeric and print an overview of the operations considered "rest"
	at the end

diff --git a/talk/vmil2012/tool/difflogs.py b/talk/vmil2012/tool/difflogs.py
--- a/talk/vmil2012/tool/difflogs.py
+++ b/talk/vmil2012/tool/difflogs.py
@@ -16,19 +16,27 @@
 from pypy.rpython.lltypesystem import llmemory, lltype
 
 categories = {
-    'setfield_gc': 'set',
-    'setarrayitem_gc': 'set',
-    'strsetitem': 'set',
+    'getarrayitem_gc': 'get',
+    'getarrayitem_gc_pure': 'get',
+    'getarrayitem_raw': 'get',
     'getfield_gc': 'get',
     'getfield_gc_pure': 'get',
-    'getarrayitem_gc': 'get',
-    'getarrayitem_gc_pure': 'get',
-    'strgetitem': 'get',
+    'getfield_raw': 'get',
+    'getinteriorfield_gc': 'get',
     'new': 'new',
     'new_array': 'new',
+    'new_with_vtable': 'new',
     'newstr': 'new',
-    'new_with_vtable': 'new',
+    'newunicode': 'new',
+    'setarrayitem_gc': 'set',
+    'setarrayitem_raw': 'set',
+    'setfield_gc': 'set',
+    'setfield_raw': 'set',
+    'setinteriorfield_gc': 'set',
+    'strgetitem': 'get',
+    'strsetitem': 'set',
 }
+rest_op_bucket = set()
 
 all_categories = 'new get set guard numeric rest'.split()
 
@@ -58,12 +66,17 @@
             else:
                 assert categories.get(opname, "rest") == "get"
                 continue
-        if opname.startswith("int_") or opname.startswith("float_"):
+        if(opname.startswith("int_")
+                or opname.startswith("float_")
+                or opname.startswith('uint_')):
             opname = "numeric"
         elif opname.startswith("guard_"):
             opname = "guard"
         else:
-            opname = categories.get(opname, 'rest')
+            _opname = categories.get(opname, 'rest')
+            if _opname == 'rest':
+                rest_op_bucket.add(opname)
+            opname = _opname
         insns[opname] = insns.get(opname, 0) + 1
     assert seen_label
     return insns
@@ -178,3 +191,8 @@
         sys.exit(2)
     else:
         main(args[0], options)
+    if len(rest_op_bucket):
+        print "=" * 80
+        print "Elements considered as rest"
+        for x in sorted(rest_op_bucket):
+            print x


More information about the pypy-commit mailing list