[pypy-commit] pypy default: support bridges

fijal noreply at buildbot.pypy.org
Thu Jul 14 11:04:10 CEST 2011


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: 
Changeset: r45586:e152619384f9
Date: 2011-07-14 11:03 +0200
http://bitbucket.org/pypy/pypy/changeset/e152619384f9/

Log:	support bridges

diff --git a/pypy/tool/jitlogparser/parser.py b/pypy/tool/jitlogparser/parser.py
--- a/pypy/tool/jitlogparser/parser.py
+++ b/pypy/tool/jitlogparser/parser.py
@@ -341,8 +341,11 @@
             # a bridge
             m = re.search('has address ([\da-f]+)', entry)
             addr = int(m.group(1), 16)
+            entry = entry.lower()
+            m = re.search('guard \d+', entry)
+            addrs[addr] = m.group(0)
         else:
-            name = entry[:entry.find('(') - 1]
+            name = entry[:entry.find('(') - 1].lower()
             addrs[int(m.group(1), 16)] = name
     dumps = {}
     for entry in extract_category(log, 'jit-backend-dump'):
@@ -358,12 +361,15 @@
                            nonstrict=True)
         loop = parser.parse()
         comm = loop.comment
-        name = comm[2:comm.find(':')-1]
+        comm = comm.lower()
+        if comm.startswith('# bridge'):
+            m = re.search('guard \d+', comm)
+            name = m.group(0)
+        else:
+            name = comm[2:comm.find(':')-1]
         if name in dumps:
             bname, start_ofs, dump = dumps[name]
             parser.postprocess(loop, backend_tp=bname, backend_dump=dump,
                                dump_start=start_ofs)
-        else:
-            xxx
         loops.append(loop)
     return log, loops
diff --git a/pypy/tool/jitlogparser/test/test_parser.py b/pypy/tool/jitlogparser/test/test_parser.py
--- a/pypy/tool/jitlogparser/test/test_parser.py
+++ b/pypy/tool/jitlogparser/test/test_parser.py
@@ -218,4 +218,6 @@
 def test_import_log_2():
     _, loops = import_log(str(py.path.local(__file__).join('..',
                                                            'logtest2.log')))
-    xxx
+    assert 'cmp' in loops[1].operations[1].asm
+    # bridge
+    assert 'cmp' in loops[3].operations[1].asm


More information about the pypy-commit mailing list