[pypy-commit] pypy stmgc-c4: test and fix extract_category for rewritten and noopt traces

Raemi noreply at buildbot.pypy.org
Fri Oct 11 18:28:07 CEST 2013


Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c4
Changeset: r67321:3710d2d308ba
Date: 2013-10-11 13:30 +0200
http://bitbucket.org/pypy/pypy/changeset/3710d2d308ba/

Log:	test and fix extract_category for rewritten and noopt traces

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
@@ -374,19 +374,16 @@
             i += 1
     return res
 
-def purge_thread_numbers(entry):
-    result = []
-    for line in entry.split('\n'):
-        line = line[line.find('#')+2:]
-        result.append(line)
-    return '\n'.join(result)
+r_skip_thread = re.compile(r'^(\d+#)?')
+def skip_thread_numbers(entry):
+    return r_skip_thread.sub('', entry).strip()
     
 def import_log(logname, ParserCls=SimpleParser):
     log = parse_log_file(logname)
     hex_re = '0x(-?[\da-f]+)'
     addrs = {}
     for entry in extract_category(log, 'jit-backend-addr'):
-        entry = purge_thread_numbers(entry)
+        entry = skip_thread_numbers(entry)
         m = re.search('bootstrap ' + hex_re, entry)
         if not m:
             # a bridge
@@ -402,7 +399,7 @@
     from rpython.jit.backend.tool.viewcode import World
     world = World()
     for entry in extract_category(log, 'jit-backend-dump'):
-        entry = purge_thread_numbers(entry)
+        entry = skip_thread_numbers(entry)
         world.parse(entry.splitlines(True))
     dumps = {}
     symbols = world.symbols
@@ -414,9 +411,9 @@
     loops = []
     cat = extract_category(log, 'jit-log-opt')
     if not cat:
-        extract_category(log, 'jit-log-rewritten')
+        cat = extract_category(log, 'jit-log-rewritten')
     if not cat:
-        extract_category(log, 'jit-log-noopt')        
+        cat = extract_category(log, 'jit-log-noopt')        
     for entry in cat:
         parser = ParserCls(entry, None, {}, 'lltype', None,
                            nonstrict=True)
@@ -473,7 +470,7 @@
         mapping[loop.descr] = loop
     for line in lines:
         if line:
-            line = purge_thread_numbers(line)
+            line = skip_thread_numbers(line)
             num, count = line.split(':', 2)
             mapping[num].count = int(count)
 
diff --git a/pypy/tool/jitlogparser/test/logtest.log b/pypy/tool/jitlogparser/test/logtest.log
--- a/pypy/tool/jitlogparser/test/logtest.log
+++ b/pypy/tool/jitlogparser/test/logtest.log
@@ -1,38 +1,38 @@
-[11f210b47027] {jit-backend
-[11f210b900f7] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f3b0b2e63d5 +0  554889E5534154415541564157488DA500000000488B042590C5540148C7042590C554010000000048898570FFFFFF488B042598C5540148C7042598C554010000000048898568FFFFFF488B0425A0C5540148C70425A0C554010000000048898560FFFFFF488B0425A8C5540148C70425A8C554010000000048898558FFFFFF4C8B3C2550525B0149BB3050920D3B7F00004D8B334983C60149BB3050920D3B7F00004D89334981FF102700000F8D000000004983C7014C8B342580F76A024983EE014C89342580F76A024983FE000F8C00000000E9AEFFFFFF488B042588F76A024829E0483B042580EC3C01760D49BB05632E0B3B7F000041FFD3554889E5534154415541564157488DA550FFFFFF4889BD70FFFFFF4889B568FFFFFF48899560FFFFFF48898D58FFFFFF4D89C7E954FFFFFF49BB00602E0B3B7F000041FFD34440484C3D030300000049BB00602E0B3B7F000041FFD34440484C3D070304000000
-[11f210b949b3] jit-backend-dump}
-[11f210b949b4] {jit-backend-addr
-Loop 0 (<code object f, file 'x.py', line 2> #9 LOAD_FAST) has address 0x7f3b0b2e645d to 0x7f3b0b2e64af (bootstrap 0x7f3b0b2e63d5)
-[11f210bab188] jit-backend-addr}
-[11f210bab189] jit-backend}
-[11f210bacbb7] {jit-log-opt-loop
-# Loop 0 : loop with 19 ops
-[p0, p1, p2, p3, i4]
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #9 LOAD_FAST')
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #12 LOAD_CONST')
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #15 COMPARE_OP')
-+166: i6 = int_lt(i4, 10000)
-guard_true(i6, descr=<Guard0x3>) [p1, p0, p2, p3, i4]
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #18 POP_JUMP_IF_FALSE')
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #21 LOAD_FAST')
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #24 LOAD_CONST')
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #27 INPLACE_ADD')
-+179: i8 = int_add(i4, 1)
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #28 STORE_FAST')
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #31 JUMP_ABSOLUTE')
-+183: i10 = getfield_raw(40564608, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>)
-+191: i12 = int_sub(i10, 1)
-+195: setfield_raw(40564608, i12, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>)
-+203: i14 = int_lt(i12, 0)
-guard_false(i14, descr=<Guard0x4>) [p1, p0, p2, p3, i8, None]
-debug_merge_point(0, '<code object f. file 'x.py'. line 2> #9 LOAD_FAST')
-+213: jump(p0, p1, p2, p3, i8, descr=<Loop0>)
-+218: --end of the loop--
-[11f210c17981] jit-log-opt-loop}
-[11f210fb1d21] {jit-backend-counts
-0:8965
-1:2
-[11f210fb381b] jit-backend-counts}
+0# [11f210b47027] {jit-backend
+0# [11f210b900f7] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f3b0b2e63d5 +0  554889E5534154415541564157488DA500000000488B042590C5540148C7042590C554010000000048898570FFFFFF488B042598C5540148C7042598C554010000000048898568FFFFFF488B0425A0C5540148C70425A0C554010000000048898560FFFFFF488B0425A8C5540148C70425A8C554010000000048898558FFFFFF4C8B3C2550525B0149BB3050920D3B7F00004D8B334983C60149BB3050920D3B7F00004D89334981FF102700000F8D000000004983C7014C8B342580F76A024983EE014C89342580F76A024983FE000F8C00000000E9AEFFFFFF488B042588F76A024829E0483B042580EC3C01760D49BB05632E0B3B7F000041FFD3554889E5534154415541564157488DA550FFFFFF4889BD70FFFFFF4889B568FFFFFF48899560FFFFFF48898D58FFFFFF4D89C7E954FFFFFF49BB00602E0B3B7F000041FFD34440484C3D030300000049BB00602E0B3B7F000041FFD34440484C3D070304000000
+0# [11f210b949b3] jit-backend-dump}
+0# [11f210b949b4] {jit-backend-addr
+0# Loop 0 (<code object f, file 'x.py', line 2> #9 LOAD_FAST) has address 0x7f3b0b2e645d to 0x7f3b0b2e64af (bootstrap 0x7f3b0b2e63d5)
+0# [11f210bab188] jit-backend-addr}
+0# [11f210bab189] jit-backend}
+0# [11f210bacbb7] {jit-log-opt-loop
+0# # Loop 0 : loop with 19 ops
+0# [p0, p1, p2, p3, i4]
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #9 LOAD_FAST')
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #12 LOAD_CONST')
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #15 COMPARE_OP')
+0# +166: i6 = int_lt(i4, 10000)
+0# guard_true(i6, descr=<Guard0x3>) [p1, p0, p2, p3, i4]
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #18 POP_JUMP_IF_FALSE')
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #21 LOAD_FAST')
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #24 LOAD_CONST')
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #27 INPLACE_ADD')
+0# +179: i8 = int_add(i4, 1)
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #28 STORE_FAST')
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #31 JUMP_ABSOLUTE')
+0# +183: i10 = getfield_raw(40564608, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>)
+0# +191: i12 = int_sub(i10, 1)
+0# +195: setfield_raw(40564608, i12, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>)
+0# +203: i14 = int_lt(i12, 0)
+0# guard_false(i14, descr=<Guard0x4>) [p1, p0, p2, p3, i8, None]
+0# debug_merge_point(0, '<code object f. file 'x.py'. line 2> #9 LOAD_FAST')
+0# +213: jump(p0, p1, p2, p3, i8, descr=<Loop0>)
+0# +218: --end of the loop--
+0# [11f210c17981] jit-log-opt-loop}
+0# [11f210fb1d21] {jit-backend-counts
+0# 0:8965
+0# 1:2
+0# [11f210fb381b] jit-backend-counts}
diff --git a/pypy/tool/jitlogparser/test/logtest2.log b/pypy/tool/jitlogparser/test/logtest2.log
--- a/pypy/tool/jitlogparser/test/logtest2.log
+++ b/pypy/tool/jitlogparser/test/logtest2.log
@@ -1,356 +1,356 @@
-[1cffd8feb691] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31000 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
-[1cffd8ffaba6] jit-backend-dump}
-[1cffd90012ee] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31085 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
-[1cffd9003b76] jit-backend-dump}
-[1cffd900719f] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3112e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
-[1cffd9008c81] jit-backend-dump}
-[1cffd900b384] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31191 +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
-[1cffd900cf18] jit-backend-dump}
-[1cffd9010345] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b311fd +0  4883EC384889442408F20F114424184889EF48895C24284C89642430488B1C2508E615034C8B242500E6150348C7042500E615030000000048C7042508E615030000000041BBB064120141FFD3F20F10442418488B44240848891C2508E615034C89242500E61503488B5C24284C8B642430488D642438C3
-[1cffd9011f0b] jit-backend-dump}
-[1cffd9015bd8] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31275 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D20488B7424104889EF4883EC0848C7452810000000488B0C2508E6150348894D38488B1C2500E6150348C7042500E615030000000048C7042508E615030000000041BB60DBE80041FFD34889C5488B4D3848C745380000000048890C2508E6150348891C2500E615034883C40848C745280000000048C7452000000000488B4D58488B4560488B5568488B5D70488B7578488BBD800000004C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C3
-[1cffd901a191] jit-backend-dump}
-[1cffd901b3a6] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31491 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
-[1cffd901dc46] jit-backend-dump}
-[1cffd901ef79] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31595 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
-[1cffd902ce01] jit-backend-dump}
-[1cffd902e819] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b316bd +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
-[1cffd9031b79] jit-backend-dump}
-[1cffd90331b0] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3181e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
-[1cffd903629a] jit-backend-dump}
-[1cffd903736b] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31988 +0  488B042508E6150348C7042500E615030000000048C7042508E61503000000004889453848C7451000C2B5014889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
-[1cffd9038a70] jit-backend-dump}
-[1cffd903e2cd] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b319e3 +0  48894D584889556848895D70488975784C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D204829C74883EC0848C745281000000041BBB0A4E80041FFD34883C4084885C00F84F4000000F645040174154883EC0849BBFD11B314557F000041FFD34883C40848C7452800000000488B4D58488B5568488B5D70488B75784C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000488B3C25484CB60148C7452000000000C34883C40849BB8819B314557F000041FFE3
-[1cffd904265b] jit-backend-dump}
-[1cffd90448f2] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31bd6 +0  4889E74883EC0841BBD00F210141FFD34883C408488B042500E615034885C07501C34883C40849BB8819B314557F000041FFE3
-[1cffd9045d15] jit-backend-dump}
-[1cffd904647a] {jit-backend-counts
-[1cffd9046851] jit-backend-counts}
-[1cffd9636773] {jit-backend
-[1cffd9afbdde] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31ce0 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBF0509317557F00004D8B3B4D8D770149BBF0509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD60010000488995680100004889857001000048898D7801000049BB08519317557F0000498B0B488D410149BB08519317557F00004989034983F8020F85000000004883FB017206813B180C00000F85000000004983FA000F850000000049BB20803215557F00004D39DC0F85000000004C8B63084983FC0A0F8D00000000498D5C24014C8B2425807816034983FC000F8C0000000049BB20519317557F00004D8B234D8D54240149BB20519317557F00004D89134883FB0A0F8D000000004C8D5301488B1C25807816034883FB000F8C000000004C89D3E9B9FFFFFF49BB20E03215557F0000415349BB401CB314557F0000415349BB0010B314557F000041FFE349BB38C63815557F0000415349BB501CB314557F0000415349BB0010B314557F000041FFE349BBC0C53815557F0000415349BB601CB314557F0000415349BB0010B314557F000041FFE349BB48C53815557F0000415349BB701CB314557F0000415349BB0010B314557F000041FFE349BBD0C43815557F0000415349BB801CB314557F0000415349BB0010B314557F000041FFE349BB58C43815557F0000415349BB901CB314557F0000415349BB0010B314557F000041FFE349BBE0C33815557F0000415349BBA01CB314557F0000415349BB0010B314557F000041FFE349BB68C33815557F0000415349BBB01CB314557F0000415349BB0010B314557F000041FFE349BBF0C23815557F0000415349BBC01CB314557F0000415349BB0010B314557F000041FFE349BB78C23815557F0000415349BBD01CB314557F0000415349BB0010B314557F000041FFE3
-[1cffd9b146d6] jit-backend-dump}
-[1cffd9b14ff3] {jit-backend-addr
-Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) has address 0x7f5514b31d30 to 0x7f5514b31e80 (bootstrap 0x7f5514b31ce0)
-[1cffd9b16753] jit-backend-addr}
-[1cffd9b17245] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31de1 +0  9B000000
-[1cffd9b18103] jit-backend-dump}
-[1cffd9b18762] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31df3 +0  AE000000
-[1cffd9b191ae] jit-backend-dump}
-[1cffd9b1960b] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31dfd +0  C9000000
-[1cffd9b19f1f] jit-backend-dump}
-[1cffd9b1a32f] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31e10 +0  DB000000
-[1cffd9b1ac8d] jit-backend-dump}
-[1cffd9b1b091] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31e1e +0  F2000000
-[1cffd9b1ba54] jit-backend-dump}
-[1cffd9b1bfec] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31e35 +0  25010000
-[1cffd9b1c8d3] jit-backend-dump}
-[1cffd9b1ccfb] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31e5e +0  21010000
-[1cffd9b1d5d6] jit-backend-dump}
-[1cffd9b1da25] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b31e74 +0  55010000
-[1cffd9b1e3b8] jit-backend-dump}
-[1cffd9b1f0b2] jit-backend}
-[1cffd9b20d9f] {jit-log-opt-loop
-# Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) : loop with 59 ops
-[p0, p1]
-+110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
-+124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
-+128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
-+132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
-+140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
-+144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
-+148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
-+152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
-+156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
-+160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
-+164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
-+168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
-+172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
-+172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003404595232))
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
-+251: guard_value(i7, 2, descr=<Guard0x7f551532e020>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
-+261: guard_nonnull_class(p11, ConstClass(W_IntObject), descr=<Guard0x7f551538c638>) [p1, p0, p11, p2, p3, p4, i5, p6, p13, p15, p17]
-+279: guard_value(i5, 0, descr=<Guard0x7f551538c5c0>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p17]
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
-+289: guard_value(p4, ConstPtr(ptr22), descr=<Guard0x7f551538c548>) [p1, p0, p4, p2, p3, p6, p11, p13, p17]
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
-+308: i23 = getfield_gc_pure(p11, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8>)
-+312: i25 = int_lt(i23, 10)
-guard_true(i25, descr=<Guard0x7f551538c4d0>) [p1, p0, p11, p2, p3, p6, p13]
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
-+322: i27 = int_add(i23, 1)
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
-+327: guard_not_invalidated(descr=<Guard0x7f551538c458>) [p1, p0, p2, p3, p6, i27]
-+327: i29 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
-+335: i31 = int_lt(i29, 0)
-guard_false(i31, descr=<Guard0x7f551538c3e0>) [p1, p0, p2, p3, p6, i27]
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
-+345: label(p0, p1, p2, p3, p6, i27, descr=TargetToken(140003404595320))
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
-+376: i32 = int_lt(i27, 10)
-guard_true(i32, descr=<Guard0x7f551538c368>) [p1, p0, p2, p3, p6, i27]
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
-+386: i33 = int_add(i27, 1)
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
-+390: guard_not_invalidated(descr=<Guard0x7f551538c2f0>) [p1, p0, p2, p3, p6, i33, None]
-+390: i35 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
-+398: i36 = int_lt(i35, 0)
-guard_false(i36, descr=<Guard0x7f551538c278>) [p1, p0, p2, p3, p6, i33, None]
-debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
-+408: jump(p0, p1, p2, p3, p6, i33, descr=TargetToken(140003404595320))
-+416: --end of the loop--
-[1cffd9ba83b9] jit-log-opt-loop}
-[1cffd9d7af1e] {jit-backend
-[1cffd9ea4873] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b32128 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBD8509317557F00004D8B3B4D8D770149BBD8509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD6001000048899D6801000048898D7001000049BB38519317557F0000498B0B488D590149BB38519317557F000049891B4983F8030F85000000008138E82200000F85000000004C8B40104D85C00F8400000000488B5808498B48108139685505000F8500000000498B48084C8B4108488B79104C8B49184883FB000F8C000000004C39CB0F8D000000004889D9480FAFDF4D89C54901D8488D5901488958084983FA000F85000000004C8B521041813A089203000F85000000004C8B5208498B4A084C8D79014C8985600100004C89A56801000048898D700100004C898D78010000488985800100004C8995880100004889BD90010000488995980100004C89D74C89FE49BB8820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C745200000000048833C2500E61503000F8500000000488B9588010000488B7A104C8B9560010000488B85700100004C8954C710488B0425807816034883F8000F8C00000000488B856801000049BB584C3815557F00004C39D80F850000000049BB50519317557F00004D8B13498D420149BB50519317557F0000498903483B9D780100000F8D000000004889D8480FAF9D900100004D89EA4901DD488D5801488B4208488D780148899560010000488985680100004C8995700100004889FE4889D749BBE820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C74520000000004C8B958001000049895A0848833C2500E61503000F8500000000488B8560010000488B5010488BBD680100004C896CFA10488B3C25807816034883FF000F8C000000004C89AD600100004C8995800100004C8BAD700100004889C2E90BFFFFFF49BBA0967F17557F0000415349BB0820B314557F0000415349BB0010B314557F000041FFE349BB704A8317557F0000415349BB1820B314557F0000415349BB0010B314557F000041FFE349BBF8498317557F0000415349BB2820B314557F0000415349BB0010B314557F000041FFE349BB80498317557F0000415349BB3820B314557F0000415349BB0010B314557F000041FFE349BB08498317557F0000415349BB4820B314557F0000415349BB0010B314557F000041FFE349BB90488317557F0000415349BB5820B314557F0000415349BB0010B314557F000041FFE349BB18488317557F0000415349BB6820B314557F0000415349BB0010B314557F000041FFE349BBA0478317557F0000415349BB7820B314557F0000415349BB0010B314557F000041FFE349BB28478317557F0000415349BB9820B314557F0000415349BB8510B314557F000041FFE349BBB0468317557F0000415349BBA820B314557F0000415349BB0010B314557F000041FFE349BB38468317557F0000415349BBB820B314557F0000415349BB0010B314557F000041FFE349BBC0458317557F0000415349BBC820B314557F0000415349BB0010B314557F000041FFE349BB48458317557F0000415349BBD820B314557F0000415349BB0010B314557F000041FFE349BBD0448317557F0000415349BBF820B314557F0000415349BB8510B314557F000041FFE349BB58448317557F0000415349BB0821B314557F0000415349BB0010B314557F000041FFE349BBE0438317557F0000415349BB1821B314557F0000415349BB0010B314557F000041FFE3
-[1cffd9ebc29f] jit-backend-dump}
-[1cffd9ebcab0] {jit-backend-addr
-Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) has address 0x7f5514b32178 to 0x7f5514b32470 (bootstrap 0x7f5514b32128)
-[1cffd9ebde77] jit-backend-addr}
-[1cffd9ebe969] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b32222 +0  4A020000
-[1cffd9ebfa23] jit-backend-dump}
-[1cffd9ec0059] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3222e +0  63020000
-[1cffd9ec0ae6] jit-backend-dump}
-[1cffd9ec0f4f] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3223b +0  7B020000
-[1cffd9ec18bc] jit-backend-dump}
-[1cffd9ec1d28] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3224f +0  8C020000
-[1cffd9ec2689] jit-backend-dump}
-[1cffd9ec2b07] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b32269 +0  97020000
-[1cffd9ec3474] jit-backend-dump}
-[1cffd9ec38bc] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b32272 +0  B3020000
-[1cffd9ec4220] jit-backend-dump}
-[1cffd9ec4677] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b32291 +0  B9020000
-[1cffd9ec5011] jit-backend-dump}
-[1cffd9ec5459] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b322a2 +0  CD020000
-[1cffd9ec5e1c] jit-backend-dump}
-[1cffd9ec6279] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3232d +0  67020000
-[1cffd9ec6bd7] jit-backend-dump}
-[1cffd9ec77c9] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3235d +0  81020000
-[1cffd9ec8142] jit-backend-dump}
-[1cffd9ec85c0] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b32377 +0  8C020000
-[1cffd9ecbf8d] jit-backend-dump}
-[1cffd9ecc51d] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b323a2 +0  86020000
-[1cffd9eccee0] jit-backend-dump}
-[1cffd9ecd33a] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b32426 +0  27020000
-[1cffd9ecdc8f] jit-backend-dump}
-[1cffd9ece160] {jit-backend-dump
-BACKEND x86_64
-SYS_EXECUTABLE python
-CODE_DUMP @7f5514b3244f +0  48020000
-[1cffd9eceab8] jit-backend-dump}
-[1cffd9ecf545] jit-backend}
-[1cffd9ed0c35] {jit-log-opt-loop
-# Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) : loop with 82 ops
-[p0, p1]
-+110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
-+124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
-+128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
-+132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
-+140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
-+144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
-+148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
-+152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
-+156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
-+160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
-+164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
-+168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
-+172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
-+172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003443320224))
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
-+244: guard_value(i7, 3, descr=<Guard0x7f55177f96a0>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
-+254: guard_class(p15, 26177128, descr=<Guard0x7f5517834a70>) [p1, p0, p15, p2, p3, p4, i5, p6, p11, p13, p17]
-+266: p21 = getfield_gc(p15, descr=<FieldP pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_w_seq 16>)
-+270: guard_nonnull(p21, descr=<Guard0x7f55178349f8>) [p1, p0, p15, p21, p2, p3, p4, i5, p6, p11, p13, p17]
-+279: i22 = getfield_gc(p15, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
-+283: p23 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
-+287: guard_class(p23, 26517736, descr=<Guard0x7f5517834980>) [p1, p0, p15, i22, p23, p21, p2, p3, p4, i5, p6, p11, p13, p17]
-+299: p25 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
-+303: i26 = getfield_gc_pure(p25, descr=<FieldS tuple3.item0 8>)
-+307: i27 = getfield_gc_pure(p25, descr=<FieldS tuple3.item1 16>)
-+311: i28 = getfield_gc_pure(p25, descr=<FieldS tuple3.item2 24>)
-+315: i30 = int_lt(i22, 0)
-guard_false(i30, descr=<Guard0x7f5517834908>) [p1, p0, p15, i22, i28, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
-+325: i31 = int_ge(i22, i28)
-guard_false(i31, descr=<Guard0x7f5517834890>) [p1, p0, p15, i22, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
-+334: i32 = int_mul(i22, i27)
-+341: i33 = int_add(i26, i32)
-+347: i35 = int_add(i22, 1)
-+351: setfield_gc(p15, i35, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
-+355: guard_value(i5, 0, descr=<Guard0x7f5517834818>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p15, i33]
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
-+365: p37 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
-+369: guard_class(p37, 26402184, descr=<Guard0x7f55178347a0>) [p1, p0, p37, p13, p2, p3, p4, p6, p15, i33]
-+382: p39 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
-+386: i40 = getfield_gc(p39, descr=<FieldS list.length 8>)
-+390: i42 = int_add(i40, 1)
-+394: p43 = getfield_gc(p39, descr=<FieldP list.items 16>)
-+394: i44 = arraylen_gc(p43, descr=<ArrayS 8>)
-+394: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i42, descr=<Callv 0 ri EF=4>)
-+506: guard_no_exception(descr=<Guard0x7f5517834728>) [p1, p0, i40, i33, p39, p2, p3, p4, p6, p13, p15, None]
-+521: p47 = getfield_gc(p39, descr=<FieldP list.items 16>)
-+532: setarrayitem_gc(p47, i40, i33, descr=<ArrayS 8>)
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
-+551: guard_not_invalidated(descr=<Guard0x7f55178346b0>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
-+551: i49 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
-+559: i51 = int_lt(i49, 0)
-guard_false(i51, descr=<Guard0x7f5517834638>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
-+569: guard_value(p4, ConstPtr(ptr52), descr=<Guard0x7f55178345c0>) [p1, p0, p4, p2, p3, p6, p13, p15, i33]
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
-+595: label(p0, p1, p2, p3, p6, i33, p13, p15, i35, i28, i27, i26, p39, descr=TargetToken(140003443320312))
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
-+625: i53 = int_ge(i35, i28)
-guard_false(i53, descr=<Guard0x7f5517834548>) [p1, p0, p15, i35, i27, i26, p2, p3, p6, p13, i33]
-+638: i54 = int_mul(i35, i27)
-+649: i55 = int_add(i26, i54)
-+655: i56 = int_add(i35, 1)
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
-+659: i57 = getfield_gc(p39, descr=<FieldS list.length 8>)
-+663: i58 = int_add(i57, 1)
-+667: p59 = getfield_gc(p39, descr=<FieldP list.items 16>)
-+667: i60 = arraylen_gc(p59, descr=<ArrayS 8>)
-+667: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i58, descr=<Callv 0 ri EF=4>)
-+744: setfield_gc(p15, i56, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
-+755: guard_no_exception(descr=<Guard0x7f55178344d0>) [p1, p0, i57, i55, p39, p2, p3, p6, p13, p15, None]
-+770: p61 = getfield_gc(p39, descr=<FieldP list.items 16>)
-+781: setarrayitem_gc(p61, i57, i55, descr=<ArrayS 8>)
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
-+793: guard_not_invalidated(descr=<Guard0x7f5517834458>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
-+793: i62 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
-+801: i63 = int_lt(i62, 0)
-guard_false(i63, descr=<Guard0x7f55178343e0>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
-debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
-+811: jump(p0, p1, p2, p3, p6, i55, p13, p15, i56, i28, i27, i26, p39, descr=TargetToken(140003443320312))
-+840: --end of the loop--
-[1cffd9f27224] jit-log-opt-loop}
-[1cffd9f6f244] {jit-backend-counts
-entry 0:1
-TargetToken(140003404595232):1
-TargetToken(140003404595320):4
-entry 1:1
-TargetToken(140003443320224):1
-TargetToken(140003443320312):4
-[1cffd9f72430] jit-backend-counts}
+0# [1cffd8feb691] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31000 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd8ffaba6] jit-backend-dump}
+0# [1cffd90012ee] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31085 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd9003b76] jit-backend-dump}
+0# [1cffd900719f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3112e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
+0# [1cffd9008c81] jit-backend-dump}
+0# [1cffd900b384] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31191 +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
+0# [1cffd900cf18] jit-backend-dump}
+0# [1cffd9010345] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b311fd +0  4883EC384889442408F20F114424184889EF48895C24284C89642430488B1C2508E615034C8B242500E6150348C7042500E615030000000048C7042508E615030000000041BBB064120141FFD3F20F10442418488B44240848891C2508E615034C89242500E61503488B5C24284C8B642430488D642438C3
+0# [1cffd9011f0b] jit-backend-dump}
+0# [1cffd9015bd8] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31275 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D20488B7424104889EF4883EC0848C7452810000000488B0C2508E6150348894D38488B1C2500E6150348C7042500E615030000000048C7042508E615030000000041BB60DBE80041FFD34889C5488B4D3848C745380000000048890C2508E6150348891C2500E615034883C40848C745280000000048C7452000000000488B4D58488B4560488B5568488B5D70488B7578488BBD800000004C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C3
+0# [1cffd901a191] jit-backend-dump}
+0# [1cffd901b3a6] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31491 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd901dc46] jit-backend-dump}
+0# [1cffd901ef79] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31595 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd902ce01] jit-backend-dump}
+0# [1cffd902e819] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b316bd +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
+0# [1cffd9031b79] jit-backend-dump}
+0# [1cffd90331b0] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3181e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
+0# [1cffd903629a] jit-backend-dump}
+0# [1cffd903736b] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31988 +0  488B042508E6150348C7042500E615030000000048C7042508E61503000000004889453848C7451000C2B5014889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd9038a70] jit-backend-dump}
+0# [1cffd903e2cd] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b319e3 +0  48894D584889556848895D70488975784C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D204829C74883EC0848C745281000000041BBB0A4E80041FFD34883C4084885C00F84F4000000F645040174154883EC0849BBFD11B314557F000041FFD34883C40848C7452800000000488B4D58488B5568488B5D70488B75784C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000488B3C25484CB60148C7452000000000C34883C40849BB8819B314557F000041FFE3
+0# [1cffd904265b] jit-backend-dump}
+0# [1cffd90448f2] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31bd6 +0  4889E74883EC0841BBD00F210141FFD34883C408488B042500E615034885C07501C34883C40849BB8819B314557F000041FFE3
+0# [1cffd9045d15] jit-backend-dump}
+0# [1cffd904647a] {jit-backend-counts
+0# [1cffd9046851] jit-backend-counts}
+0# [1cffd9636773] {jit-backend
+0# [1cffd9afbdde] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31ce0 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBF0509317557F00004D8B3B4D8D770149BBF0509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD60010000488995680100004889857001000048898D7801000049BB08519317557F0000498B0B488D410149BB08519317557F00004989034983F8020F85000000004883FB017206813B180C00000F85000000004983FA000F850000000049BB20803215557F00004D39DC0F85000000004C8B63084983FC0A0F8D00000000498D5C24014C8B2425807816034983FC000F8C0000000049BB20519317557F00004D8B234D8D54240149BB20519317557F00004D89134883FB0A0F8D000000004C8D5301488B1C25807816034883FB000F8C000000004C89D3E9B9FFFFFF49BB20E03215557F0000415349BB401CB314557F0000415349BB0010B314557F000041FFE349BB38C63815557F0000415349BB501CB314557F0000415349BB0010B314557F000041FFE349BBC0C53815557F0000415349BB601CB314557F0000415349BB0010B314557F000041FFE349BB48C53815557F0000415349BB701CB314557F0000415349BB0010B314557F000041FFE349BBD0C43815557F0000415349BB801CB314557F0000415349BB0010B314557F000041FFE349BB58C43815557F0000415349BB901CB314557F0000415349BB0010B314557F000041FFE349BBE0C33815557F0000415349BBA01CB314557F0000415349BB0010B314557F000041FFE349BB68C33815557F0000415349BBB01CB314557F0000415349BB0010B314557F000041FFE349BBF0C23815557F0000415349BBC01CB314557F0000415349BB0010B314557F000041FFE349BB78C23815557F0000415349BBD01CB314557F0000415349BB0010B314557F000041FFE3
+0# [1cffd9b146d6] jit-backend-dump}
+0# [1cffd9b14ff3] {jit-backend-addr
+0# Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) has address 0x7f5514b31d30 to 0x7f5514b31e80 (bootstrap 0x7f5514b31ce0)
+0# [1cffd9b16753] jit-backend-addr}
+0# [1cffd9b17245] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31de1 +0  9B000000
+0# [1cffd9b18103] jit-backend-dump}
+0# [1cffd9b18762] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31df3 +0  AE000000
+0# [1cffd9b191ae] jit-backend-dump}
+0# [1cffd9b1960b] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31dfd +0  C9000000
+0# [1cffd9b19f1f] jit-backend-dump}
+0# [1cffd9b1a32f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e10 +0  DB000000
+0# [1cffd9b1ac8d] jit-backend-dump}
+0# [1cffd9b1b091] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e1e +0  F2000000
+0# [1cffd9b1ba54] jit-backend-dump}
+0# [1cffd9b1bfec] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e35 +0  25010000
+0# [1cffd9b1c8d3] jit-backend-dump}
+0# [1cffd9b1ccfb] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e5e +0  21010000
+0# [1cffd9b1d5d6] jit-backend-dump}
+0# [1cffd9b1da25] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e74 +0  55010000
+0# [1cffd9b1e3b8] jit-backend-dump}
+0# [1cffd9b1f0b2] jit-backend}
+0# [1cffd9b20d9f] {jit-log-opt-loop
+0# # Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) : loop with 59 ops
+0# [p0, p1]
+0# +110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
+0# +124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
+0# +128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
+0# +132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
+0# +140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
+0# +144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
+0# +148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
+0# +152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
+0# +156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
+0# +160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
+0# +164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
+0# +168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
+0# +172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
+0# +172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003404595232))
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +251: guard_value(i7, 2, descr=<Guard0x7f551532e020>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
+0# +261: guard_nonnull_class(p11, ConstClass(W_IntObject), descr=<Guard0x7f551538c638>) [p1, p0, p11, p2, p3, p4, i5, p6, p13, p15, p17]
+0# +279: guard_value(i5, 0, descr=<Guard0x7f551538c5c0>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p17]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
+0# +289: guard_value(p4, ConstPtr(ptr22), descr=<Guard0x7f551538c548>) [p1, p0, p4, p2, p3, p6, p11, p13, p17]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
+0# +308: i23 = getfield_gc_pure(p11, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8>)
+0# +312: i25 = int_lt(i23, 10)
+0# guard_true(i25, descr=<Guard0x7f551538c4d0>) [p1, p0, p11, p2, p3, p6, p13]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
+0# +322: i27 = int_add(i23, 1)
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
+0# +327: guard_not_invalidated(descr=<Guard0x7f551538c458>) [p1, p0, p2, p3, p6, i27]
+0# +327: i29 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +335: i31 = int_lt(i29, 0)
+0# guard_false(i31, descr=<Guard0x7f551538c3e0>) [p1, p0, p2, p3, p6, i27]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +345: label(p0, p1, p2, p3, p6, i27, descr=TargetToken(140003404595320))
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
+0# +376: i32 = int_lt(i27, 10)
+0# guard_true(i32, descr=<Guard0x7f551538c368>) [p1, p0, p2, p3, p6, i27]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
+0# +386: i33 = int_add(i27, 1)
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
+0# +390: guard_not_invalidated(descr=<Guard0x7f551538c2f0>) [p1, p0, p2, p3, p6, i33, None]
+0# +390: i35 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +398: i36 = int_lt(i35, 0)
+0# guard_false(i36, descr=<Guard0x7f551538c278>) [p1, p0, p2, p3, p6, i33, None]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +408: jump(p0, p1, p2, p3, p6, i33, descr=TargetToken(140003404595320))
+0# +416: --end of the loop--
+0# [1cffd9ba83b9] jit-log-opt-loop}
+0# [1cffd9d7af1e] {jit-backend
+0# [1cffd9ea4873] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32128 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBD8509317557F00004D8B3B4D8D770149BBD8509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD6001000048899D6801000048898D7001000049BB38519317557F0000498B0B488D590149BB38519317557F000049891B4983F8030F85000000008138E82200000F85000000004C8B40104D85C00F8400000000488B5808498B48108139685505000F8500000000498B48084C8B4108488B79104C8B49184883FB000F8C000000004C39CB0F8D000000004889D9480FAFDF4D89C54901D8488D5901488958084983FA000F85000000004C8B521041813A089203000F85000000004C8B5208498B4A084C8D79014C8985600100004C89A56801000048898D700100004C898D78010000488985800100004C8995880100004889BD90010000488995980100004C89D74C89FE49BB8820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C745200000000048833C2500E61503000F8500000000488B9588010000488B7A104C8B9560010000488B85700100004C8954C710488B0425807816034883F8000F8C00000000488B856801000049BB584C3815557F00004C39D80F850000000049BB50519317557F00004D8B13498D420149BB50519317557F0000498903483B9D780100000F8D000000004889D8480FAF9D900100004D89EA4901DD488D5801488B4208488D780148899560010000488985680100004C8995700100004889FE4889D749BBE820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C74520000000004C8B958001000049895A0848833C2500E61503000F8500000000488B8560010000488B5010488BBD680100004C896CFA10488B3C25807816034883FF000F8C000000004C89AD600100004C8995800100004C8BAD700100004889C2E90BFFFFFF49BBA0967F17557F0000415349BB0820B314557F0000415349BB0010B314557F000041FFE349BB704A8317557F0000415349BB1820B314557F0000415349BB0010B314557F000041FFE349BBF8498317557F0000415349BB2820B314557F0000415349BB0010B314557F000041FFE349BB80498317557F0000415349BB3820B314557F0000415349BB0010B314557F000041FFE349BB08498317557F0000415349BB4820B314557F0000415349BB0010B314557F000041FFE349BB90488317557F0000415349BB5820B314557F0000415349BB0010B314557F000041FFE349BB18488317557F0000415349BB6820B314557F0000415349BB0010B314557F000041FFE349BBA0478317557F0000415349BB7820B314557F0000415349BB0010B314557F000041FFE349BB28478317557F0000415349BB9820B314557F0000415349BB8510B314557F000041FFE349BBB0468317557F0000415349BBA820B314557F0000415349BB0010B314557F000041FFE349BB38468317557F0000415349BBB820B314557F0000415349BB0010B314557F000041FFE349BBC0458317557F0000415349BBC820B314557F0000415349BB0010B314557F000041FFE349BB48458317557F0000415349BBD820B314557F0000415349BB0010B314557F000041FFE349BBD0448317557F0000415349BBF820B314557F0000415349BB8510B314557F000041FFE349BB58448317557F0000415349BB0821B314557F0000415349BB0010B314557F000041FFE349BBE0438317557F0000415349BB1821B314557F0000415349BB0010B314557F000041FFE3
+0# [1cffd9ebc29f] jit-backend-dump}
+0# [1cffd9ebcab0] {jit-backend-addr
+0# Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) has address 0x7f5514b32178 to 0x7f5514b32470 (bootstrap 0x7f5514b32128)
+0# [1cffd9ebde77] jit-backend-addr}
+0# [1cffd9ebe969] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32222 +0  4A020000
+0# [1cffd9ebfa23] jit-backend-dump}
+0# [1cffd9ec0059] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3222e +0  63020000
+0# [1cffd9ec0ae6] jit-backend-dump}
+0# [1cffd9ec0f4f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3223b +0  7B020000
+0# [1cffd9ec18bc] jit-backend-dump}
+0# [1cffd9ec1d28] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3224f +0  8C020000
+0# [1cffd9ec2689] jit-backend-dump}
+0# [1cffd9ec2b07] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32269 +0  97020000
+0# [1cffd9ec3474] jit-backend-dump}
+0# [1cffd9ec38bc] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32272 +0  B3020000
+0# [1cffd9ec4220] jit-backend-dump}
+0# [1cffd9ec4677] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32291 +0  B9020000
+0# [1cffd9ec5011] jit-backend-dump}
+0# [1cffd9ec5459] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b322a2 +0  CD020000
+0# [1cffd9ec5e1c] jit-backend-dump}
+0# [1cffd9ec6279] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3232d +0  67020000
+0# [1cffd9ec6bd7] jit-backend-dump}
+0# [1cffd9ec77c9] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3235d +0  81020000
+0# [1cffd9ec8142] jit-backend-dump}
+0# [1cffd9ec85c0] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32377 +0  8C020000
+0# [1cffd9ecbf8d] jit-backend-dump}
+0# [1cffd9ecc51d] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b323a2 +0  86020000
+0# [1cffd9eccee0] jit-backend-dump}
+0# [1cffd9ecd33a] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32426 +0  27020000
+0# [1cffd9ecdc8f] jit-backend-dump}
+0# [1cffd9ece160] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3244f +0  48020000
+0# [1cffd9eceab8] jit-backend-dump}
+0# [1cffd9ecf545] jit-backend}
+0# [1cffd9ed0c35] {jit-log-opt-loop
+0# # Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) : loop with 82 ops
+0# [p0, p1]
+0# +110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
+0# +124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
+0# +128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
+0# +132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
+0# +140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
+0# +144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
+0# +148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
+0# +152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
+0# +156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
+0# +160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
+0# +164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
+0# +168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
+0# +172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
+0# +172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003443320224))
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +244: guard_value(i7, 3, descr=<Guard0x7f55177f96a0>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
+0# +254: guard_class(p15, 26177128, descr=<Guard0x7f5517834a70>) [p1, p0, p15, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +266: p21 = getfield_gc(p15, descr=<FieldP pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_w_seq 16>)
+0# +270: guard_nonnull(p21, descr=<Guard0x7f55178349f8>) [p1, p0, p15, p21, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +279: i22 = getfield_gc(p15, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +283: p23 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
+0# +287: guard_class(p23, 26517736, descr=<Guard0x7f5517834980>) [p1, p0, p15, i22, p23, p21, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +299: p25 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
+0# +303: i26 = getfield_gc_pure(p25, descr=<FieldS tuple3.item0 8>)
+0# +307: i27 = getfield_gc_pure(p25, descr=<FieldS tuple3.item1 16>)
+0# +311: i28 = getfield_gc_pure(p25, descr=<FieldS tuple3.item2 24>)
+0# +315: i30 = int_lt(i22, 0)
+0# guard_false(i30, descr=<Guard0x7f5517834908>) [p1, p0, p15, i22, i28, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +325: i31 = int_ge(i22, i28)
+0# guard_false(i31, descr=<Guard0x7f5517834890>) [p1, p0, p15, i22, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +334: i32 = int_mul(i22, i27)
+0# +341: i33 = int_add(i26, i32)
+0# +347: i35 = int_add(i22, 1)
+0# +351: setfield_gc(p15, i35, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +355: guard_value(i5, 0, descr=<Guard0x7f5517834818>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p15, i33]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
+0# +365: p37 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
+0# +369: guard_class(p37, 26402184, descr=<Guard0x7f55178347a0>) [p1, p0, p37, p13, p2, p3, p4, p6, p15, i33]
+0# +382: p39 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
+0# +386: i40 = getfield_gc(p39, descr=<FieldS list.length 8>)
+0# +390: i42 = int_add(i40, 1)
+0# +394: p43 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +394: i44 = arraylen_gc(p43, descr=<ArrayS 8>)
+0# +394: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i42, descr=<Callv 0 ri EF=4>)
+0# +506: guard_no_exception(descr=<Guard0x7f5517834728>) [p1, p0, i40, i33, p39, p2, p3, p4, p6, p13, p15, None]
+0# +521: p47 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +532: setarrayitem_gc(p47, i40, i33, descr=<ArrayS 8>)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
+0# +551: guard_not_invalidated(descr=<Guard0x7f55178346b0>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
+0# +551: i49 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +559: i51 = int_lt(i49, 0)
+0# guard_false(i51, descr=<Guard0x7f5517834638>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
+0# +569: guard_value(p4, ConstPtr(ptr52), descr=<Guard0x7f55178345c0>) [p1, p0, p4, p2, p3, p6, p13, p15, i33]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +595: label(p0, p1, p2, p3, p6, i33, p13, p15, i35, i28, i27, i26, p39, descr=TargetToken(140003443320312))
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +625: i53 = int_ge(i35, i28)
+0# guard_false(i53, descr=<Guard0x7f5517834548>) [p1, p0, p15, i35, i27, i26, p2, p3, p6, p13, i33]
+0# +638: i54 = int_mul(i35, i27)
+0# +649: i55 = int_add(i26, i54)
+0# +655: i56 = int_add(i35, 1)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
+0# +659: i57 = getfield_gc(p39, descr=<FieldS list.length 8>)
+0# +663: i58 = int_add(i57, 1)
+0# +667: p59 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +667: i60 = arraylen_gc(p59, descr=<ArrayS 8>)
+0# +667: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i58, descr=<Callv 0 ri EF=4>)
+0# +744: setfield_gc(p15, i56, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +755: guard_no_exception(descr=<Guard0x7f55178344d0>) [p1, p0, i57, i55, p39, p2, p3, p6, p13, p15, None]
+0# +770: p61 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +781: setarrayitem_gc(p61, i57, i55, descr=<ArrayS 8>)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
+0# +793: guard_not_invalidated(descr=<Guard0x7f5517834458>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
+0# +793: i62 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +801: i63 = int_lt(i62, 0)
+0# guard_false(i63, descr=<Guard0x7f55178343e0>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +811: jump(p0, p1, p2, p3, p6, i55, p13, p15, i56, i28, i27, i26, p39, descr=TargetToken(140003443320312))
+0# +840: --end of the loop--
+0# [1cffd9f27224] jit-log-opt-loop}
+0# [1cffd9f6f244] {jit-backend-counts
+0# entry 0:1
+0# TargetToken(140003404595232):1
+0# TargetToken(140003404595320):4
+0# entry 1:1
+0# TargetToken(140003443320224):1
+0# TargetToken(140003443320312):4
+0# [1cffd9f72430] jit-backend-counts}
\ No newline at end of file
diff --git a/pypy/tool/jitlogparser/test/logtest_noopt.log b/pypy/tool/jitlogparser/test/logtest_noopt.log
new file mode 100644
--- /dev/null
+++ b/pypy/tool/jitlogparser/test/logtest_noopt.log
@@ -0,0 +1,356 @@
+0# [1cffd8feb691] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31000 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd8ffaba6] jit-backend-dump}
+0# [1cffd90012ee] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31085 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd9003b76] jit-backend-dump}
+0# [1cffd900719f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3112e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
+0# [1cffd9008c81] jit-backend-dump}
+0# [1cffd900b384] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31191 +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
+0# [1cffd900cf18] jit-backend-dump}
+0# [1cffd9010345] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b311fd +0  4883EC384889442408F20F114424184889EF48895C24284C89642430488B1C2508E615034C8B242500E6150348C7042500E615030000000048C7042508E615030000000041BBB064120141FFD3F20F10442418488B44240848891C2508E615034C89242500E61503488B5C24284C8B642430488D642438C3
+0# [1cffd9011f0b] jit-backend-dump}
+0# [1cffd9015bd8] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31275 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D20488B7424104889EF4883EC0848C7452810000000488B0C2508E6150348894D38488B1C2500E6150348C7042500E615030000000048C7042508E615030000000041BB60DBE80041FFD34889C5488B4D3848C745380000000048890C2508E6150348891C2500E615034883C40848C745280000000048C7452000000000488B4D58488B4560488B5568488B5D70488B7578488BBD800000004C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C3
+0# [1cffd901a191] jit-backend-dump}
+0# [1cffd901b3a6] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31491 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd901dc46] jit-backend-dump}
+0# [1cffd901ef79] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31595 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd902ce01] jit-backend-dump}
+0# [1cffd902e819] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b316bd +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
+0# [1cffd9031b79] jit-backend-dump}
+0# [1cffd90331b0] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3181e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
+0# [1cffd903629a] jit-backend-dump}
+0# [1cffd903736b] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31988 +0  488B042508E6150348C7042500E615030000000048C7042508E61503000000004889453848C7451000C2B5014889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd9038a70] jit-backend-dump}
+0# [1cffd903e2cd] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b319e3 +0  48894D584889556848895D70488975784C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D204829C74883EC0848C745281000000041BBB0A4E80041FFD34883C4084885C00F84F4000000F645040174154883EC0849BBFD11B314557F000041FFD34883C40848C7452800000000488B4D58488B5568488B5D70488B75784C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000488B3C25484CB60148C7452000000000C34883C40849BB8819B314557F000041FFE3
+0# [1cffd904265b] jit-backend-dump}
+0# [1cffd90448f2] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31bd6 +0  4889E74883EC0841BBD00F210141FFD34883C408488B042500E615034885C07501C34883C40849BB8819B314557F000041FFE3
+0# [1cffd9045d15] jit-backend-dump}
+0# [1cffd904647a] {jit-backend-counts
+0# [1cffd9046851] jit-backend-counts}
+0# [1cffd9636773] {jit-backend
+0# [1cffd9afbdde] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31ce0 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBF0509317557F00004D8B3B4D8D770149BBF0509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD60010000488995680100004889857001000048898D7801000049BB08519317557F0000498B0B488D410149BB08519317557F00004989034983F8020F85000000004883FB017206813B180C00000F85000000004983FA000F850000000049BB20803215557F00004D39DC0F85000000004C8B63084983FC0A0F8D00000000498D5C24014C8B2425807816034983FC000F8C0000000049BB20519317557F00004D8B234D8D54240149BB20519317557F00004D89134883FB0A0F8D000000004C8D5301488B1C25807816034883FB000F8C000000004C89D3E9B9FFFFFF49BB20E03215557F0000415349BB401CB314557F0000415349BB0010B314557F000041FFE349BB38C63815557F0000415349BB501CB314557F0000415349BB0010B314557F000041FFE349BBC0C53815557F0000415349BB601CB314557F0000415349BB0010B314557F000041FFE349BB48C53815557F0000415349BB701CB314557F0000415349BB0010B314557F000041FFE349BBD0C43815557F0000415349BB801CB314557F0000415349BB0010B314557F000041FFE349BB58C43815557F0000415349BB901CB314557F0000415349BB0010B314557F000041FFE349BBE0C33815557F0000415349BBA01CB314557F0000415349BB0010B314557F000041FFE349BB68C33815557F0000415349BBB01CB314557F0000415349BB0010B314557F000041FFE349BBF0C23815557F0000415349BBC01CB314557F0000415349BB0010B314557F000041FFE349BB78C23815557F0000415349BBD01CB314557F0000415349BB0010B314557F000041FFE3
+0# [1cffd9b146d6] jit-backend-dump}
+0# [1cffd9b14ff3] {jit-backend-addr
+0# Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) has address 0x7f5514b31d30 to 0x7f5514b31e80 (bootstrap 0x7f5514b31ce0)
+0# [1cffd9b16753] jit-backend-addr}
+0# [1cffd9b17245] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31de1 +0  9B000000
+0# [1cffd9b18103] jit-backend-dump}
+0# [1cffd9b18762] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31df3 +0  AE000000
+0# [1cffd9b191ae] jit-backend-dump}
+0# [1cffd9b1960b] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31dfd +0  C9000000
+0# [1cffd9b19f1f] jit-backend-dump}
+0# [1cffd9b1a32f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e10 +0  DB000000
+0# [1cffd9b1ac8d] jit-backend-dump}
+0# [1cffd9b1b091] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e1e +0  F2000000
+0# [1cffd9b1ba54] jit-backend-dump}
+0# [1cffd9b1bfec] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e35 +0  25010000
+0# [1cffd9b1c8d3] jit-backend-dump}
+0# [1cffd9b1ccfb] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e5e +0  21010000
+0# [1cffd9b1d5d6] jit-backend-dump}
+0# [1cffd9b1da25] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e74 +0  55010000
+0# [1cffd9b1e3b8] jit-backend-dump}
+0# [1cffd9b1f0b2] jit-backend}
+0# [1cffd9b20d9f] {jit-log-noopt-loop
+0# # Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) : loop with 59 ops
+0# [p0, p1]
+0# +110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
+0# +124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
+0# +128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
+0# +132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
+0# +140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
+0# +144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
+0# +148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
+0# +152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
+0# +156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
+0# +160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
+0# +164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
+0# +168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
+0# +172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
+0# +172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003404595232))
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +251: guard_value(i7, 2, descr=<Guard0x7f551532e020>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
+0# +261: guard_nonnull_class(p11, ConstClass(W_IntObject), descr=<Guard0x7f551538c638>) [p1, p0, p11, p2, p3, p4, i5, p6, p13, p15, p17]
+0# +279: guard_value(i5, 0, descr=<Guard0x7f551538c5c0>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p17]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
+0# +289: guard_value(p4, ConstPtr(ptr22), descr=<Guard0x7f551538c548>) [p1, p0, p4, p2, p3, p6, p11, p13, p17]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
+0# +308: i23 = getfield_gc_pure(p11, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8>)
+0# +312: i25 = int_lt(i23, 10)
+0# guard_true(i25, descr=<Guard0x7f551538c4d0>) [p1, p0, p11, p2, p3, p6, p13]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
+0# +322: i27 = int_add(i23, 1)
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
+0# +327: guard_not_invalidated(descr=<Guard0x7f551538c458>) [p1, p0, p2, p3, p6, i27]
+0# +327: i29 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +335: i31 = int_lt(i29, 0)
+0# guard_false(i31, descr=<Guard0x7f551538c3e0>) [p1, p0, p2, p3, p6, i27]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +345: label(p0, p1, p2, p3, p6, i27, descr=TargetToken(140003404595320))
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
+0# +376: i32 = int_lt(i27, 10)
+0# guard_true(i32, descr=<Guard0x7f551538c368>) [p1, p0, p2, p3, p6, i27]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
+0# +386: i33 = int_add(i27, 1)
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
+0# +390: guard_not_invalidated(descr=<Guard0x7f551538c2f0>) [p1, p0, p2, p3, p6, i33, None]
+0# +390: i35 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +398: i36 = int_lt(i35, 0)
+0# guard_false(i36, descr=<Guard0x7f551538c278>) [p1, p0, p2, p3, p6, i33, None]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +408: jump(p0, p1, p2, p3, p6, i33, descr=TargetToken(140003404595320))
+0# +416: --end of the loop--
+0# [1cffd9ba83b9] jit-log-noopt-loop}
+0# [1cffd9d7af1e] {jit-backend
+0# [1cffd9ea4873] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32128 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBD8509317557F00004D8B3B4D8D770149BBD8509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD6001000048899D6801000048898D7001000049BB38519317557F0000498B0B488D590149BB38519317557F000049891B4983F8030F85000000008138E82200000F85000000004C8B40104D85C00F8400000000488B5808498B48108139685505000F8500000000498B48084C8B4108488B79104C8B49184883FB000F8C000000004C39CB0F8D000000004889D9480FAFDF4D89C54901D8488D5901488958084983FA000F85000000004C8B521041813A089203000F85000000004C8B5208498B4A084C8D79014C8985600100004C89A56801000048898D700100004C898D78010000488985800100004C8995880100004889BD90010000488995980100004C89D74C89FE49BB8820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C745200000000048833C2500E61503000F8500000000488B9588010000488B7A104C8B9560010000488B85700100004C8954C710488B0425807816034883F8000F8C00000000488B856801000049BB584C3815557F00004C39D80F850000000049BB50519317557F00004D8B13498D420149BB50519317557F0000498903483B9D780100000F8D000000004889D8480FAF9D900100004D89EA4901DD488D5801488B4208488D780148899560010000488985680100004C8995700100004889FE4889D749BBE820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C74520000000004C8B958001000049895A0848833C2500E61503000F8500000000488B8560010000488B5010488BBD680100004C896CFA10488B3C25807816034883FF000F8C000000004C89AD600100004C8995800100004C8BAD700100004889C2E90BFFFFFF49BBA0967F17557F0000415349BB0820B314557F0000415349BB0010B314557F000041FFE349BB704A8317557F0000415349BB1820B314557F0000415349BB0010B314557F000041FFE349BBF8498317557F0000415349BB2820B314557F0000415349BB0010B314557F000041FFE349BB80498317557F0000415349BB3820B314557F0000415349BB0010B314557F000041FFE349BB08498317557F0000415349BB4820B314557F0000415349BB0010B314557F000041FFE349BB90488317557F0000415349BB5820B314557F0000415349BB0010B314557F000041FFE349BB18488317557F0000415349BB6820B314557F0000415349BB0010B314557F000041FFE349BBA0478317557F0000415349BB7820B314557F0000415349BB0010B314557F000041FFE349BB28478317557F0000415349BB9820B314557F0000415349BB8510B314557F000041FFE349BBB0468317557F0000415349BBA820B314557F0000415349BB0010B314557F000041FFE349BB38468317557F0000415349BBB820B314557F0000415349BB0010B314557F000041FFE349BBC0458317557F0000415349BBC820B314557F0000415349BB0010B314557F000041FFE349BB48458317557F0000415349BBD820B314557F0000415349BB0010B314557F000041FFE349BBD0448317557F0000415349BBF820B314557F0000415349BB8510B314557F000041FFE349BB58448317557F0000415349BB0821B314557F0000415349BB0010B314557F000041FFE349BBE0438317557F0000415349BB1821B314557F0000415349BB0010B314557F000041FFE3
+0# [1cffd9ebc29f] jit-backend-dump}
+0# [1cffd9ebcab0] {jit-backend-addr
+0# Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) has address 0x7f5514b32178 to 0x7f5514b32470 (bootstrap 0x7f5514b32128)
+0# [1cffd9ebde77] jit-backend-addr}
+0# [1cffd9ebe969] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32222 +0  4A020000
+0# [1cffd9ebfa23] jit-backend-dump}
+0# [1cffd9ec0059] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3222e +0  63020000
+0# [1cffd9ec0ae6] jit-backend-dump}
+0# [1cffd9ec0f4f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3223b +0  7B020000
+0# [1cffd9ec18bc] jit-backend-dump}
+0# [1cffd9ec1d28] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3224f +0  8C020000
+0# [1cffd9ec2689] jit-backend-dump}
+0# [1cffd9ec2b07] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32269 +0  97020000
+0# [1cffd9ec3474] jit-backend-dump}
+0# [1cffd9ec38bc] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32272 +0  B3020000
+0# [1cffd9ec4220] jit-backend-dump}
+0# [1cffd9ec4677] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32291 +0  B9020000
+0# [1cffd9ec5011] jit-backend-dump}
+0# [1cffd9ec5459] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b322a2 +0  CD020000
+0# [1cffd9ec5e1c] jit-backend-dump}
+0# [1cffd9ec6279] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3232d +0  67020000
+0# [1cffd9ec6bd7] jit-backend-dump}
+0# [1cffd9ec77c9] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3235d +0  81020000
+0# [1cffd9ec8142] jit-backend-dump}
+0# [1cffd9ec85c0] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32377 +0  8C020000
+0# [1cffd9ecbf8d] jit-backend-dump}
+0# [1cffd9ecc51d] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b323a2 +0  86020000
+0# [1cffd9eccee0] jit-backend-dump}
+0# [1cffd9ecd33a] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32426 +0  27020000
+0# [1cffd9ecdc8f] jit-backend-dump}
+0# [1cffd9ece160] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3244f +0  48020000
+0# [1cffd9eceab8] jit-backend-dump}
+0# [1cffd9ecf545] jit-backend}
+0# [1cffd9ed0c35] {jit-log-noopt-loop
+0# # Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) : loop with 82 ops
+0# [p0, p1]
+0# +110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
+0# +124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
+0# +128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
+0# +132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
+0# +140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
+0# +144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
+0# +148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
+0# +152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
+0# +156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
+0# +160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
+0# +164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
+0# +168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
+0# +172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
+0# +172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003443320224))
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +244: guard_value(i7, 3, descr=<Guard0x7f55177f96a0>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
+0# +254: guard_class(p15, 26177128, descr=<Guard0x7f5517834a70>) [p1, p0, p15, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +266: p21 = getfield_gc(p15, descr=<FieldP pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_w_seq 16>)
+0# +270: guard_nonnull(p21, descr=<Guard0x7f55178349f8>) [p1, p0, p15, p21, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +279: i22 = getfield_gc(p15, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +283: p23 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
+0# +287: guard_class(p23, 26517736, descr=<Guard0x7f5517834980>) [p1, p0, p15, i22, p23, p21, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +299: p25 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
+0# +303: i26 = getfield_gc_pure(p25, descr=<FieldS tuple3.item0 8>)
+0# +307: i27 = getfield_gc_pure(p25, descr=<FieldS tuple3.item1 16>)
+0# +311: i28 = getfield_gc_pure(p25, descr=<FieldS tuple3.item2 24>)
+0# +315: i30 = int_lt(i22, 0)
+0# guard_false(i30, descr=<Guard0x7f5517834908>) [p1, p0, p15, i22, i28, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +325: i31 = int_ge(i22, i28)
+0# guard_false(i31, descr=<Guard0x7f5517834890>) [p1, p0, p15, i22, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +334: i32 = int_mul(i22, i27)
+0# +341: i33 = int_add(i26, i32)
+0# +347: i35 = int_add(i22, 1)
+0# +351: setfield_gc(p15, i35, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +355: guard_value(i5, 0, descr=<Guard0x7f5517834818>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p15, i33]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
+0# +365: p37 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
+0# +369: guard_class(p37, 26402184, descr=<Guard0x7f55178347a0>) [p1, p0, p37, p13, p2, p3, p4, p6, p15, i33]
+0# +382: p39 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
+0# +386: i40 = getfield_gc(p39, descr=<FieldS list.length 8>)
+0# +390: i42 = int_add(i40, 1)
+0# +394: p43 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +394: i44 = arraylen_gc(p43, descr=<ArrayS 8>)
+0# +394: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i42, descr=<Callv 0 ri EF=4>)
+0# +506: guard_no_exception(descr=<Guard0x7f5517834728>) [p1, p0, i40, i33, p39, p2, p3, p4, p6, p13, p15, None]
+0# +521: p47 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +532: setarrayitem_gc(p47, i40, i33, descr=<ArrayS 8>)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
+0# +551: guard_not_invalidated(descr=<Guard0x7f55178346b0>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
+0# +551: i49 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +559: i51 = int_lt(i49, 0)
+0# guard_false(i51, descr=<Guard0x7f5517834638>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
+0# +569: guard_value(p4, ConstPtr(ptr52), descr=<Guard0x7f55178345c0>) [p1, p0, p4, p2, p3, p6, p13, p15, i33]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +595: label(p0, p1, p2, p3, p6, i33, p13, p15, i35, i28, i27, i26, p39, descr=TargetToken(140003443320312))
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +625: i53 = int_ge(i35, i28)
+0# guard_false(i53, descr=<Guard0x7f5517834548>) [p1, p0, p15, i35, i27, i26, p2, p3, p6, p13, i33]
+0# +638: i54 = int_mul(i35, i27)
+0# +649: i55 = int_add(i26, i54)
+0# +655: i56 = int_add(i35, 1)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
+0# +659: i57 = getfield_gc(p39, descr=<FieldS list.length 8>)
+0# +663: i58 = int_add(i57, 1)
+0# +667: p59 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +667: i60 = arraylen_gc(p59, descr=<ArrayS 8>)
+0# +667: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i58, descr=<Callv 0 ri EF=4>)
+0# +744: setfield_gc(p15, i56, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +755: guard_no_exception(descr=<Guard0x7f55178344d0>) [p1, p0, i57, i55, p39, p2, p3, p6, p13, p15, None]
+0# +770: p61 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +781: setarrayitem_gc(p61, i57, i55, descr=<ArrayS 8>)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
+0# +793: guard_not_invalidated(descr=<Guard0x7f5517834458>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
+0# +793: i62 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +801: i63 = int_lt(i62, 0)
+0# guard_false(i63, descr=<Guard0x7f55178343e0>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +811: jump(p0, p1, p2, p3, p6, i55, p13, p15, i56, i28, i27, i26, p39, descr=TargetToken(140003443320312))
+0# +840: --end of the loop--
+0# [1cffd9f27224] jit-log-noopt-loop}
+0# [1cffd9f6f244] {jit-backend-counts
+0# entry 0:1
+0# TargetToken(140003404595232):1
+0# TargetToken(140003404595320):4
+0# entry 1:1
+0# TargetToken(140003443320224):1
+0# TargetToken(140003443320312):4
+0# [1cffd9f72430] jit-backend-counts}
\ No newline at end of file
diff --git a/pypy/tool/jitlogparser/test/logtest_rewritten.log b/pypy/tool/jitlogparser/test/logtest_rewritten.log
new file mode 100644
--- /dev/null
+++ b/pypy/tool/jitlogparser/test/logtest_rewritten.log
@@ -0,0 +1,356 @@
+0# [1cffd8feb691] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31000 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd8ffaba6] jit-backend-dump}
+0# [1cffd90012ee] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31085 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd9003b76] jit-backend-dump}
+0# [1cffd900719f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3112e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
+0# [1cffd9008c81] jit-backend-dump}
+0# [1cffd900b384] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31191 +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000C20800
+0# [1cffd900cf18] jit-backend-dump}
+0# [1cffd9010345] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b311fd +0  4883EC384889442408F20F114424184889EF48895C24284C89642430488B1C2508E615034C8B242500E6150348C7042500E615030000000048C7042508E615030000000041BBB064120141FFD3F20F10442418488B44240848891C2508E615034C89242500E61503488B5C24284C8B642430488D642438C3
+0# [1cffd9011f0b] jit-backend-dump}
+0# [1cffd9015bd8] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31275 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D20488B7424104889EF4883EC0848C7452810000000488B0C2508E6150348894D38488B1C2500E6150348C7042500E615030000000048C7042508E615030000000041BB60DBE80041FFD34889C5488B4D3848C745380000000048890C2508E6150348891C2500E615034883C40848C745280000000048C7452000000000488B4D58488B4560488B5568488B5D70488B7578488BBD800000004C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C3
+0# [1cffd901a191] jit-backend-dump}
+0# [1cffd901b3a6] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31491 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd901dc46] jit-backend-dump}
+0# [1cffd901ef79] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31595 +0  48894D58488945604889556848895D70488975784889BD800000004C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B1C2508E6150348C7042500E615030000000048C7042508E615030000000048895D38584889452058488945104889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd902ce01] jit-backend-dump}
+0# [1cffd902e819] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b316bd +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBB064120141FFD3488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
+0# [1cffd9031b79] jit-backend-dump}
+0# [1cffd90331b0] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3181e +0  4889455848894D60488955684889757048897D784C8985800000004C898D880000004C899590000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B7C240841BBF065120141FFD3488B442408F6400480488B4558488B4D60488B5568488B7570488B7D784C8B85800000004C8B8D880000004C8B9590000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000C20800
+0# [1cffd903629a] jit-backend-dump}
+0# [1cffd903736b] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31988 +0  488B042508E6150348C7042500E615030000000048C7042508E61503000000004889453848C7451000C2B5014889E84C8BBC24880000004C8BB424800000004C8B6C24784C8B642470488B5C2468488B6C24604881C498000000C3
+0# [1cffd9038a70] jit-backend-dump}
+0# [1cffd903e2cd] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b319e3 +0  48894D584889556848895D70488975784C8985880000004C898D900000004C8995980000004C89A5A00000004C89ADA80000004C89B5B00000004C89BDB8000000F20F1185C0000000F20F118DC8000000F20F1195D0000000F20F119DD8000000F20F11A5E0000000F20F11ADE8000000F20F11B5F0000000F20F11BDF8000000F2440F118500010000F2440F118D08010000F2440F119510010000F2440F119D18010000F2440F11A520010000F2440F11AD28010000F2440F11B530010000488B4C240848894D204829C74883EC0848C745281000000041BBB0A4E80041FFD34883C4084885C00F84F4000000F645040174154883EC0849BBFD11B314557F000041FFD34883C40848C7452800000000488B4D58488B5568488B5D70488B75784C8B85880000004C8B8D900000004C8B95980000004C8BA5A00000004C8BADA80000004C8BB5B00000004C8BBDB8000000F20F1085C0000000F20F108DC8000000F20F1095D0000000F20F109DD8000000F20F10A5E0000000F20F10ADE8000000F20F10B5F0000000F20F10BDF8000000F2440F108500010000F2440F108D08010000F2440F109510010000F2440F109D18010000F2440F10A520010000F2440F10AD28010000F2440F10B530010000488B3C25484CB60148C7452000000000C34883C40849BB8819B314557F000041FFE3
+0# [1cffd904265b] jit-backend-dump}
+0# [1cffd90448f2] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31bd6 +0  4889E74883EC0841BBD00F210141FFD34883C408488B042500E615034885C07501C34883C40849BB8819B314557F000041FFE3
+0# [1cffd9045d15] jit-backend-dump}
+0# [1cffd904647a] {jit-backend-counts
+0# [1cffd9046851] jit-backend-counts}
+0# [1cffd9636773] {jit-backend
+0# [1cffd9afbdde] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31ce0 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBF0509317557F00004D8B3B4D8D770149BBF0509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD60010000488995680100004889857001000048898D7801000049BB08519317557F0000498B0B488D410149BB08519317557F00004989034983F8020F85000000004883FB017206813B180C00000F85000000004983FA000F850000000049BB20803215557F00004D39DC0F85000000004C8B63084983FC0A0F8D00000000498D5C24014C8B2425807816034983FC000F8C0000000049BB20519317557F00004D8B234D8D54240149BB20519317557F00004D89134883FB0A0F8D000000004C8D5301488B1C25807816034883FB000F8C000000004C89D3E9B9FFFFFF49BB20E03215557F0000415349BB401CB314557F0000415349BB0010B314557F000041FFE349BB38C63815557F0000415349BB501CB314557F0000415349BB0010B314557F000041FFE349BBC0C53815557F0000415349BB601CB314557F0000415349BB0010B314557F000041FFE349BB48C53815557F0000415349BB701CB314557F0000415349BB0010B314557F000041FFE349BBD0C43815557F0000415349BB801CB314557F0000415349BB0010B314557F000041FFE349BB58C43815557F0000415349BB901CB314557F0000415349BB0010B314557F000041FFE349BBE0C33815557F0000415349BBA01CB314557F0000415349BB0010B314557F000041FFE349BB68C33815557F0000415349BBB01CB314557F0000415349BB0010B314557F000041FFE349BBF0C23815557F0000415349BBC01CB314557F0000415349BB0010B314557F000041FFE349BB78C23815557F0000415349BBD01CB314557F0000415349BB0010B314557F000041FFE3
+0# [1cffd9b146d6] jit-backend-dump}
+0# [1cffd9b14ff3] {jit-backend-addr
+0# Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) has address 0x7f5514b31d30 to 0x7f5514b31e80 (bootstrap 0x7f5514b31ce0)
+0# [1cffd9b16753] jit-backend-addr}
+0# [1cffd9b17245] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31de1 +0  9B000000
+0# [1cffd9b18103] jit-backend-dump}
+0# [1cffd9b18762] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31df3 +0  AE000000
+0# [1cffd9b191ae] jit-backend-dump}
+0# [1cffd9b1960b] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31dfd +0  C9000000
+0# [1cffd9b19f1f] jit-backend-dump}
+0# [1cffd9b1a32f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e10 +0  DB000000
+0# [1cffd9b1ac8d] jit-backend-dump}
+0# [1cffd9b1b091] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e1e +0  F2000000
+0# [1cffd9b1ba54] jit-backend-dump}
+0# [1cffd9b1bfec] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e35 +0  25010000
+0# [1cffd9b1c8d3] jit-backend-dump}
+0# [1cffd9b1ccfb] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e5e +0  21010000
+0# [1cffd9b1d5d6] jit-backend-dump}
+0# [1cffd9b1da25] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b31e74 +0  55010000
+0# [1cffd9b1e3b8] jit-backend-dump}
+0# [1cffd9b1f0b2] jit-backend}
+0# [1cffd9b20d9f] {jit-log-rewritten-loop
+0# # Loop 0 (<code object g, file 'x.py', line 8> #9 LOAD_FAST) : loop with 59 ops
+0# [p0, p1]
+0# +110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
+0# +124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
+0# +128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
+0# +132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
+0# +140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
+0# +144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
+0# +148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
+0# +152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
+0# +156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
+0# +160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
+0# +164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
+0# +168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
+0# +172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
+0# +172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003404595232))
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +251: guard_value(i7, 2, descr=<Guard0x7f551532e020>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
+0# +261: guard_nonnull_class(p11, ConstClass(W_IntObject), descr=<Guard0x7f551538c638>) [p1, p0, p11, p2, p3, p4, i5, p6, p13, p15, p17]
+0# +279: guard_value(i5, 0, descr=<Guard0x7f551538c5c0>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p17]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
+0# +289: guard_value(p4, ConstPtr(ptr22), descr=<Guard0x7f551538c548>) [p1, p0, p4, p2, p3, p6, p11, p13, p17]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
+0# +308: i23 = getfield_gc_pure(p11, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8>)
+0# +312: i25 = int_lt(i23, 10)
+0# guard_true(i25, descr=<Guard0x7f551538c4d0>) [p1, p0, p11, p2, p3, p6, p13]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
+0# +322: i27 = int_add(i23, 1)
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
+0# +327: guard_not_invalidated(descr=<Guard0x7f551538c458>) [p1, p0, p2, p3, p6, i27]
+0# +327: i29 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +335: i31 = int_lt(i29, 0)
+0# guard_false(i31, descr=<Guard0x7f551538c3e0>) [p1, p0, p2, p3, p6, i27]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +345: label(p0, p1, p2, p3, p6, i27, descr=TargetToken(140003404595320))
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #12 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #15 COMPARE_OP')
+0# +376: i32 = int_lt(i27, 10)
+0# guard_true(i32, descr=<Guard0x7f551538c368>) [p1, p0, p2, p3, p6, i27]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #18 POP_JUMP_IF_FALSE')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #21 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #24 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #27 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #30 LOAD_CONST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #33 INPLACE_ADD')
+0# +386: i33 = int_add(i27, 1)
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #34 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #37 JUMP_ABSOLUTE')
+0# +390: guard_not_invalidated(descr=<Guard0x7f551538c2f0>) [p1, p0, p2, p3, p6, i33, None]
+0# +390: i35 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +398: i36 = int_lt(i35, 0)
+0# guard_false(i36, descr=<Guard0x7f551538c278>) [p1, p0, p2, p3, p6, i33, None]
+0# debug_merge_point(0, 0, '<code object g. file 'x.py'. line 8> #9 LOAD_FAST')
+0# +408: jump(p0, p1, p2, p3, p6, i33, descr=TargetToken(140003404595320))
+0# +416: --end of the loop--
+0# [1cffd9ba83b9] jit-log-rewritten-loop}
+0# [1cffd9d7af1e] {jit-backend
+0# [1cffd9ea4873] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32128 +0  4881EC9800000048896C24604889FD48895C24684C896424704C896C24784C89B424800000004C89BC2488000000488B0425B07916034829E0483B0425109F0103760D49BBD61BB314557F000041FFD349BBD8509317557F00004D8B3B4D8D770149BBD8509317557F00004D89334C8BB5380100004D8BBE800000004D8B6E504D8B66704D0FB6968E0000004D8B4E604D8B4678498B7E58498B7668488B5E10488B5618488B4620488B4E284C89BD480100004C89AD500100004C898D580100004889BD6001000048899D6801000048898D7001000049BB38519317557F0000498B0B488D590149BB38519317557F000049891B4983F8030F85000000008138E82200000F85000000004C8B40104D85C00F8400000000488B5808498B48108139685505000F8500000000498B48084C8B4108488B79104C8B49184883FB000F8C000000004C39CB0F8D000000004889D9480FAFDF4D89C54901D8488D5901488958084983FA000F85000000004C8B521041813A089203000F85000000004C8B5208498B4A084C8D79014C8985600100004C89A56801000048898D700100004C898D78010000488985800100004C8995880100004889BD90010000488995980100004C89D74C89FE49BB8820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C745200000000048833C2500E61503000F8500000000488B9588010000488B7A104C8B9560010000488B85700100004C8954C710488B0425807816034883F8000F8C00000000488B856801000049BB584C3815557F00004C39D80F850000000049BB50519317557F00004D8B13498D420149BB50519317557F0000498903483B9D780100000F8D000000004889D8480FAF9D900100004D89EA4901DD488D5801488B4208488D780148899560010000488985680100004C8995700100004889FE4889D749BBE820B314557F00004C895D2041BBE060730041FFD3F6450401740D49BBFD11B314557F000041FFD348C74520000000004C8B958001000049895A0848833C2500E61503000F8500000000488B8560010000488B5010488BBD680100004C896CFA10488B3C25807816034883FF000F8C000000004C89AD600100004C8995800100004C8BAD700100004889C2E90BFFFFFF49BBA0967F17557F0000415349BB0820B314557F0000415349BB0010B314557F000041FFE349BB704A8317557F0000415349BB1820B314557F0000415349BB0010B314557F000041FFE349BBF8498317557F0000415349BB2820B314557F0000415349BB0010B314557F000041FFE349BB80498317557F0000415349BB3820B314557F0000415349BB0010B314557F000041FFE349BB08498317557F0000415349BB4820B314557F0000415349BB0010B314557F000041FFE349BB90488317557F0000415349BB5820B314557F0000415349BB0010B314557F000041FFE349BB18488317557F0000415349BB6820B314557F0000415349BB0010B314557F000041FFE349BBA0478317557F0000415349BB7820B314557F0000415349BB0010B314557F000041FFE349BB28478317557F0000415349BB9820B314557F0000415349BB8510B314557F000041FFE349BBB0468317557F0000415349BBA820B314557F0000415349BB0010B314557F000041FFE349BB38468317557F0000415349BBB820B314557F0000415349BB0010B314557F000041FFE349BBC0458317557F0000415349BBC820B314557F0000415349BB0010B314557F000041FFE349BB48458317557F0000415349BBD820B314557F0000415349BB0010B314557F000041FFE349BBD0448317557F0000415349BBF820B314557F0000415349BB8510B314557F000041FFE349BB58448317557F0000415349BB0821B314557F0000415349BB0010B314557F000041FFE349BBE0438317557F0000415349BB1821B314557F0000415349BB0010B314557F000041FFE3
+0# [1cffd9ebc29f] jit-backend-dump}
+0# [1cffd9ebcab0] {jit-backend-addr
+0# Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) has address 0x7f5514b32178 to 0x7f5514b32470 (bootstrap 0x7f5514b32128)
+0# [1cffd9ebde77] jit-backend-addr}
+0# [1cffd9ebe969] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32222 +0  4A020000
+0# [1cffd9ebfa23] jit-backend-dump}
+0# [1cffd9ec0059] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3222e +0  63020000
+0# [1cffd9ec0ae6] jit-backend-dump}
+0# [1cffd9ec0f4f] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3223b +0  7B020000
+0# [1cffd9ec18bc] jit-backend-dump}
+0# [1cffd9ec1d28] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3224f +0  8C020000
+0# [1cffd9ec2689] jit-backend-dump}
+0# [1cffd9ec2b07] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32269 +0  97020000
+0# [1cffd9ec3474] jit-backend-dump}
+0# [1cffd9ec38bc] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32272 +0  B3020000
+0# [1cffd9ec4220] jit-backend-dump}
+0# [1cffd9ec4677] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32291 +0  B9020000
+0# [1cffd9ec5011] jit-backend-dump}
+0# [1cffd9ec5459] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b322a2 +0  CD020000
+0# [1cffd9ec5e1c] jit-backend-dump}
+0# [1cffd9ec6279] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3232d +0  67020000
+0# [1cffd9ec6bd7] jit-backend-dump}
+0# [1cffd9ec77c9] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3235d +0  81020000
+0# [1cffd9ec8142] jit-backend-dump}
+0# [1cffd9ec85c0] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32377 +0  8C020000
+0# [1cffd9ecbf8d] jit-backend-dump}
+0# [1cffd9ecc51d] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b323a2 +0  86020000
+0# [1cffd9eccee0] jit-backend-dump}
+0# [1cffd9ecd33a] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b32426 +0  27020000
+0# [1cffd9ecdc8f] jit-backend-dump}
+0# [1cffd9ece160] {jit-backend-dump
+0# BACKEND x86_64
+0# SYS_EXECUTABLE python
+0# CODE_DUMP @7f5514b3244f +0  48020000
+0# [1cffd9eceab8] jit-backend-dump}
+0# [1cffd9ecf545] jit-backend}
+0# [1cffd9ed0c35] {jit-log-rewritten-loop
+0# # Loop 1 (<code object h, file 'x.py', line 14> #13 FOR_ITER) : loop with 82 ops
+0# [p0, p1]
+0# +110: p2 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_w_f_trace 128>)
+0# +124: p3 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_last_exception 80>)
+0# +128: p4 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_pycode 112>)
+0# +132: i5 = getfield_gc(p0, descr=<FieldU pypy.interpreter.pyframe.PyFrame.inst_is_being_profiled 142>)
+0# +140: p6 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_lastblock 96>)
+0# +144: i7 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_valuestackdepth 120>)
+0# +148: i8 = getfield_gc(p0, descr=<FieldS pypy.interpreter.pyframe.PyFrame.inst_last_instr 88>)
+0# +152: p9 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_locals_stack_w 104>)
+0# +156: p11 = getarrayitem_gc(p9, 0, descr=<ArrayP 8>)
+0# +160: p13 = getarrayitem_gc(p9, 1, descr=<ArrayP 8>)
+0# +164: p15 = getarrayitem_gc(p9, 2, descr=<ArrayP 8>)
+0# +168: p17 = getarrayitem_gc(p9, 3, descr=<ArrayP 8>)
+0# +172: p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.pyframe.PyFrame.inst_cells 40>)
+0# +172: label(p0, p1, p2, p3, p4, i5, p6, i7, i8, p11, p13, p15, p17, descr=TargetToken(140003443320224))
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +244: guard_value(i7, 3, descr=<Guard0x7f55177f96a0>) [i7, p1, p0, p2, p3, p4, i5, p6, i8, p11, p13, p15, p17]
+0# +254: guard_class(p15, 26177128, descr=<Guard0x7f5517834a70>) [p1, p0, p15, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +266: p21 = getfield_gc(p15, descr=<FieldP pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_w_seq 16>)
+0# +270: guard_nonnull(p21, descr=<Guard0x7f55178349f8>) [p1, p0, p15, p21, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +279: i22 = getfield_gc(p15, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +283: p23 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
+0# +287: guard_class(p23, 26517736, descr=<Guard0x7f5517834980>) [p1, p0, p15, i22, p23, p21, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +299: p25 = getfield_gc(p21, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
+0# +303: i26 = getfield_gc_pure(p25, descr=<FieldS tuple3.item0 8>)
+0# +307: i27 = getfield_gc_pure(p25, descr=<FieldS tuple3.item1 16>)
+0# +311: i28 = getfield_gc_pure(p25, descr=<FieldS tuple3.item2 24>)
+0# +315: i30 = int_lt(i22, 0)
+0# guard_false(i30, descr=<Guard0x7f5517834908>) [p1, p0, p15, i22, i28, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +325: i31 = int_ge(i22, i28)
+0# guard_false(i31, descr=<Guard0x7f5517834890>) [p1, p0, p15, i22, i27, i26, p2, p3, p4, i5, p6, p11, p13, p17]
+0# +334: i32 = int_mul(i22, i27)
+0# +341: i33 = int_add(i26, i32)
+0# +347: i35 = int_add(i22, 1)
+0# +351: setfield_gc(p15, i35, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +355: guard_value(i5, 0, descr=<Guard0x7f5517834818>) [i5, p1, p0, p2, p3, p4, p6, p11, p13, p15, i33]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
+0# +365: p37 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy 16>)
+0# +369: guard_class(p37, 26402184, descr=<Guard0x7f55178347a0>) [p1, p0, p37, p13, p2, p3, p4, p6, p15, i33]
+0# +382: p39 = getfield_gc(p13, descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_lstorage 8>)
+0# +386: i40 = getfield_gc(p39, descr=<FieldS list.length 8>)
+0# +390: i42 = int_add(i40, 1)
+0# +394: p43 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +394: i44 = arraylen_gc(p43, descr=<ArrayS 8>)
+0# +394: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i42, descr=<Callv 0 ri EF=4>)
+0# +506: guard_no_exception(descr=<Guard0x7f5517834728>) [p1, p0, i40, i33, p39, p2, p3, p4, p6, p13, p15, None]
+0# +521: p47 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +532: setarrayitem_gc(p47, i40, i33, descr=<ArrayS 8>)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
+0# +551: guard_not_invalidated(descr=<Guard0x7f55178346b0>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
+0# +551: i49 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +559: i51 = int_lt(i49, 0)
+0# guard_false(i51, descr=<Guard0x7f5517834638>) [p1, p0, p2, p3, p4, p6, p13, p15, i33]
+0# +569: guard_value(p4, ConstPtr(ptr52), descr=<Guard0x7f55178345c0>) [p1, p0, p4, p2, p3, p6, p13, p15, i33]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +595: label(p0, p1, p2, p3, p6, i33, p13, p15, i35, i28, i27, i26, p39, descr=TargetToken(140003443320312))
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +625: i53 = int_ge(i35, i28)
+0# guard_false(i53, descr=<Guard0x7f5517834548>) [p1, p0, p15, i35, i27, i26, p2, p3, p6, p13, i33]
+0# +638: i54 = int_mul(i35, i27)
+0# +649: i55 = int_add(i26, i54)
+0# +655: i56 = int_add(i35, 1)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #16 STORE_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #19 LOAD_FAST')
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #22 LIST_APPEND')
+0# +659: i57 = getfield_gc(p39, descr=<FieldS list.length 8>)
+0# +663: i58 = int_add(i57, 1)
+0# +667: p59 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +667: i60 = arraylen_gc(p59, descr=<ArrayS 8>)
+0# +667: call(ConstClass(_ll_list_resize_ge_trampoline__v672___simple_call__function__), p39, i58, descr=<Callv 0 ri EF=4>)
+0# +744: setfield_gc(p15, i56, descr=<FieldS pypy.objspace.std.iterobject.W_AbstractSeqIterObject.inst_index 8>)
+0# +755: guard_no_exception(descr=<Guard0x7f55178344d0>) [p1, p0, i57, i55, p39, p2, p3, p6, p13, p15, None]
+0# +770: p61 = getfield_gc(p39, descr=<FieldP list.items 16>)
+0# +781: setarrayitem_gc(p61, i57, i55, descr=<ArrayS 8>)
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #25 JUMP_ABSOLUTE')
+0# +793: guard_not_invalidated(descr=<Guard0x7f5517834458>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
+0# +793: i62 = getfield_raw(51804288, descr=<FieldS pypysig_long_struct.c_value 0>)
+0# +801: i63 = int_lt(i62, 0)
+0# guard_false(i63, descr=<Guard0x7f55178343e0>) [p1, p0, p2, p3, p6, p13, p15, i55, None]
+0# debug_merge_point(0, 0, '<code object h. file 'x.py'. line 14> #13 FOR_ITER')
+0# +811: jump(p0, p1, p2, p3, p6, i55, p13, p15, i56, i28, i27, i26, p39, descr=TargetToken(140003443320312))
+0# +840: --end of the loop--
+0# [1cffd9f27224] jit-log-rewritten-loop}
+0# [1cffd9f6f244] {jit-backend-counts
+0# entry 0:1
+0# TargetToken(140003404595232):1
+0# TargetToken(140003404595320):4
+0# entry 1:1
+0# TargetToken(140003443320224):1
+0# TargetToken(140003443320312):4
+0# [1cffd9f72430] jit-backend-counts}
\ No newline at end of file
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
@@ -289,6 +289,26 @@
         loop.force_asm()
     assert 'cmp' in loops[1].operations[2].asm
 
+def test_import_log_rewritten():
+    if not autodetect().startswith('x86'):
+        py.test.skip('x86 only test')
+    _, loops = import_log(str(py.path.local(__file__).join(
+        '..', 'logtest_rewritten.log')))
+    for loop in loops:
+        loop.force_asm()
+    assert 'cmp' in loops[1].operations[2].asm
+
+def test_import_log_noopt():
+    if not autodetect().startswith('x86'):
+        py.test.skip('x86 only test')
+    _, loops = import_log(str(py.path.local(__file__).join(
+        '..', 'logtest_noopt.log')))
+    for loop in loops:
+        loop.force_asm()
+    assert 'cmp' in loops[1].operations[2].asm
+
+    
+
 def test_Op_repr_is_pure():
     op = Op('foobar', ['a', 'b'], 'c', 'mydescr')
     myrepr = 'c = foobar(a, b, descr=mydescr)'
diff --git a/rpython/jit/metainterp/logger.py b/rpython/jit/metainterp/logger.py
--- a/rpython/jit/metainterp/logger.py
+++ b/rpython/jit/metainterp/logger.py
@@ -15,10 +15,14 @@
     def log_loop(self, inputargs, operations, number=0, type=None, ops_offset=None, name=''):
         if type is None:
             debug_start("jit-log-noopt-loop")
+            debug_print("# Loop", number, '(%s)' % name, ":", "noopt",
+                        "with", len(operations), "ops")
             logops = self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-noopt-loop")
         elif type == "rewritten":
             debug_start("jit-log-rewritten-loop")
+            debug_print("# Loop", number, '(%s)' % name, ":", type,
+                        "with", len(operations), "ops")
             logops = self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-rewritten-loop")
         elif number == -2:
@@ -37,6 +41,9 @@
                    descr=None, ops_offset=None):
         if extra == "noopt":
             debug_start("jit-log-noopt-bridge")
+            debug_print("# bridge out of Guard",
+                        "0x%x" % compute_unique_id(descr),
+                        "with", len(operations), "ops")
             logops = self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-noopt-bridge")
         elif extra == "compiling":
@@ -45,6 +52,9 @@
             debug_stop("jit-log-compiling-bridge")
         elif extra == "rewritten":
             debug_start("jit-log-rewritten-bridge")
+            debug_print("# bridge out of Guard",
+                        "0x%x" % compute_unique_id(descr),
+                        "with", len(operations), "ops")
             logops = self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-rewritten-bridge")
         else:


More information about the pypy-commit mailing list