Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r61840:1bd69b83126f
Date: 2013-02-27 13:40 +0200
http://bitbucket.org/pypy/pypy/changeset/1bd69b83126f/
Log: fix those tests (I hope)
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
@@ -34,7 +34,7 @@
self.descr = descr
self._is_guard = name.startswith('guard_')
if self._is_guard:
- self.guard_no = int(self.descr[len('<Guard'):-1])
+ self.guard_no = int(self.descr[len('<Guard'):-1], 16)
def setfailargs(self, failargs):
self.failargs = failargs
@@ -350,7 +350,7 @@
i = 0
while i < len(ops):
op = ops[i]
- if op.is_guard() and bridges.get('loop-' + str(op.guard_no), None):
+ if op.is_guard() and bridges.get('loop-' + hex(op.guard_no)[2:], None):
res.append(op)
i = 0
if hasattr(op.bridge, 'force_asm'):
@@ -414,7 +414,7 @@
def split_trace(trace):
labels = [0]
if trace.comment and 'Guard' in trace.comment:
- descrs = ['bridge ' + re.search('Guard (\d+)', trace.comment).group(1)]
+ descrs = ['bridge ' + re.search('Guard ([\da-f]+)',
trace.comment).group(1)]
else:
descrs = ['entry ' + re.search('Loop (\d+)', trace.comment).group(1)]
for i, op in enumerate(trace.operations):
diff --git a/pypy/tool/jitlogparser/storage.py
b/pypy/tool/jitlogparser/storage.py
--- a/pypy/tool/jitlogparser/storage.py
+++ b/pypy/tool/jitlogparser/storage.py
@@ -63,14 +63,14 @@
for loop_no, loop in enumerate(loops):
for op in loop.operations:
if op.name.startswith('guard_'):
- guard_dict[int(op.descr[len('<Guard'):-1])] = (op, loop)
+ guard_dict[int(op.descr[len('<Guard'):-1], 16)] = (op,
loop)
for loop in loops:
if loop.comment:
comment = loop.comment.strip()
if 'entry bridge' in comment:
pass
elif comment.startswith('# bridge out of'):
- no = int(comment[len('# bridge out of Guard '):].split('
', 1)[0])
+ no = int(comment[len('# bridge out of Guard '):].split('
', 1)[0], 16)
op, parent = guard_dict[no]
op.bridge = loop
op.percentage = ((getattr(loop, 'count', 1) * 100) /
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
@@ -162,23 +162,23 @@
loops = LoopStorage().reconnect_loops([main, bridge, entry_bridge])
assert len(loops) == 2
assert len(loops[0].operations[0].bridge.operations) == 1
- assert loops[0].operations[0].bridge.no == 18
+ assert loops[0].operations[0].bridge.no == 0x18
assert loops[0].operations[0].percentage == 30
def test_adjust_bridges():
main = parse('''
[v0]
- guard_false(v0, descr=<Guard13>)
+ guard_false(v0, descr=<Guard1a>)
guard_true(v0, descr=<Guard5>)
''')
bridge = parse('''
- # bridge out of Guard 13
+ # bridge out of Guard 1a
[]
int_add(0, 1)
''')
LoopStorage().reconnect_loops([main, bridge])
assert adjust_bridges(main, {})[1].name == 'guard_true'
- assert adjust_bridges(main, {'loop-13': True})[1].name == 'int_add'
+ assert adjust_bridges(main, {'loop-1a': True})[1].name == 'int_add'
def test_parsing_strliteral():
loop = parse("""
@@ -259,7 +259,7 @@
+348: i32 = int_is_true(i31)
+360: i33 = int_or(i27, i32)
+364: i34 = int_is_true(i33)
-guard_false(i34, descr=<Guard89>) [i1, i22, p2]
+guard_false(i34, descr=<Guard8a>) [i1, i22, p2]
+372: i35 = int_add(i22, 1)
debug_merge_point(0, 're StrMatchIn at 92 [17. 4. 0. 20. 393237. 21. 0. 29. 9.
1. 65535. 15. 4. 9. 3. 0. 1. 21. 1. 29. 9. 1. 65535. 15. 4. 9. 2. 0. 1. 1...')
+376: jump(i35, i1, p2, p4, descr=TargetToken(1081858656))
@@ -323,7 +323,7 @@
[i7]
i9 = int_lt(i7, 1003)
label(i9, descr=grrr)
- guard_true(i9, descr=<Guard2>) []
+ guard_true(i9, descr=<Guardaf>) []
i13 = getfield_raw(151937600, descr=<SignedFieldDescr
pypysig_long_struct.c_value 0>)
label(i13, descr=asb)
i19 = int_lt(i13, 1003)
@@ -336,10 +336,10 @@
i0 = int_lt(1, 2)
finish(i0)
''')
- bridge.comment = 'bridge out of Guard 2 with 1 ops'
+ bridge.comment = 'bridge out of Guard af with 1 ops'
loop.comment = 'Loop 0'
loops = split_trace(loop) + split_trace(bridge)
- input = ['grrr:123\nasb:12\nbridge 2:1234']
+ input = ['grrr:123\nasb:12\nbridge af:1234']
parse_log_counts(input, loops)
assert loops[-1].count == 1234
assert loops[1].count == 123
diff --git a/rpython/jit/metainterp/test/test_logger.py
b/rpython/jit/metainterp/test/test_logger.py
--- a/rpython/jit/metainterp/test/test_logger.py
+++ b/rpython/jit/metainterp/test/test_logger.py
@@ -166,7 +166,7 @@
loop = pure_parse(inp, namespace=namespace)
logger = Logger(self.make_metainterp_sd(), guard_number=True)
output = logger.log_loop(loop)
- assert re.match("guard_true\(i0, descr=<Guard\d+>\) \[i0\]",
output.splitlines()[-1])
+ assert re.match("guard_true\(i0, descr=<Guard[\da-f]+>\) \[i0\]",
output.splitlines()[-1])
pure_parse(output)
logger = Logger(self.make_metainterp_sd(), guard_number=False)
@@ -200,7 +200,7 @@
def test_intro_bridge(self):
bare_logger = logger.Logger(self.make_metainterp_sd())
output = capturing(bare_logger.log_bridge, [], [], 3)
- assert re.match("# bridge out of Guard \d+ with 0 ops",
+ assert re.match("# bridge out of Guard [\da-f]+ with 0 ops",
output.splitlines()[0])
pure_parse(output)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit