Author: Hakan Ardo <[email protected]>
Branch: jit-label-counters
Changeset: r50848:52c88d381e03
Date: 2011-12-25 10:44 +0100
http://bitbucket.org/pypy/pypy/changeset/52c88d381e03/
Log: save a bit of memory
diff --git a/pypy/jit/backend/x86/assembler.py
b/pypy/jit/backend/x86/assembler.py
--- a/pypy/jit/backend/x86/assembler.py
+++ b/pypy/jit/backend/x86/assembler.py
@@ -39,6 +39,7 @@
from pypy.jit.codewriter.effectinfo import EffectInfo
from pypy.jit.codewriter import longlong
from pypy.rlib.rarithmetic import intmask
+from pypy.rlib.objectmodel import compute_unique_id
# darwin requires the stack to be 16 bytes aligned on calls. Same for gcc
4.5.0,
# better safe than sorry
@@ -76,7 +77,6 @@
failargs_limit)
self.fail_ebp = 0
self.loop_run_counters = []
- self.loop_run_counter_tokens = []
self.float_const_neg_addr = 0
self.float_const_abs_addr = 0
self.malloc_slowpath1 = 0
@@ -150,14 +150,10 @@
debug_start('jit-backend-counts')
for i in range(len(self.loop_run_counters)):
struct = self.loop_run_counters[i]
- token = self.loop_run_counter_tokens[i]
- if token:
- prefix = token
+ if not struct.bridge:
+ prefix = 'TargetToken(%d)' % struct.number
else:
- if struct.bridge:
- prefix = 'bridge ' + str(struct.number)
- else:
- prefix = 'loop ' + str(struct.number)
+ prefix = 'bridge ' + str(struct.number)
debug_print(prefix + ':' + str(struct.i))
debug_stop('jit-backend-counts')
@@ -611,12 +607,12 @@
track_allocation=False)
struct.i = 0
struct.bridge = int(bridge)
- struct.number = number
- self.loop_run_counters.append(struct)
- if token is not None:
- self.loop_run_counter_tokens.append(token.repr_of_descr())
+ if bridge:
+ struct.number = number
else:
- self.loop_run_counter_tokens.append(None)
+ assert token
+ struct.number = compute_unique_id(token)
+ self.loop_run_counters.append(struct)
return struct
def _find_failure_recovery_bytecode(self, faildescr):
diff --git a/pypy/jit/backend/x86/test/test_runner.py
b/pypy/jit/backend/x86/test/test_runner.py
--- a/pypy/jit/backend/x86/test/test_runner.py
+++ b/pypy/jit/backend/x86/test/test_runner.py
@@ -545,12 +545,8 @@
# check debugging info
struct = self.cpu.assembler.loop_run_counters[0]
assert struct.i == 1
- token = self.cpu.assembler.loop_run_counter_tokens[0]
- assert token == preambletoken.repr_of_descr()
struct = self.cpu.assembler.loop_run_counters[1]
assert struct.i == 9
- token = self.cpu.assembler.loop_run_counter_tokens[1]
- assert token == targettoken.repr_of_descr()
self.cpu.finish_once()
finally:
debug._log = None
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
@@ -402,7 +402,6 @@
parts = []
for i in range(len(labels) - 1):
start, stop = labels[i], labels[i+1]
-
parts.append(Part(trace, trace.operations[start : stop + 1]))
return parts
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit