[pypy-commit] pypy arm-backend-2: improve backend logging
bivab
noreply at buildbot.pypy.org
Fri Feb 3 12:33:47 CET 2012
Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r52066:383a3f05a654
Date: 2012-02-03 10:18 +0100
http://bitbucket.org/pypy/pypy/changeset/383a3f05a654/
Log: improve backend logging
diff --git a/pypy/jit/backend/arm/assembler.py b/pypy/jit/backend/arm/assembler.py
--- a/pypy/jit/backend/arm/assembler.py
+++ b/pypy/jit/backend/arm/assembler.py
@@ -566,7 +566,7 @@
self.gen_func_prolog()
# cpu interface
- def assemble_loop(self, inputargs, operations, looptoken, log):
+ def assemble_loop(self, loopname, inputargs, operations, looptoken, log):
clt = CompiledLoopToken(self.cpu, looptoken.number)
clt.allgcrefs = []
looptoken.compiled_loop_token = clt
@@ -580,7 +580,6 @@
if log:
operations = self._inject_debugging_code(looptoken, operations,
'e', looptoken.number)
- self._dump(operations)
self._call_header()
sp_patch_location = self._prepare_sp_patch_position()
@@ -607,14 +606,20 @@
self.fixup_target_tokens(rawstart)
if log and not we_are_translated():
- print 'Loop', inputargs, operations
self.mc._dump_trace(rawstart,
'loop_%s.asm' % self.cpu.total_compiled_loops)
- print 'Done assembling loop with token %r' % looptoken
ops_offset = self.mc.ops_offset
self.teardown()
+ debug_start("jit-backend-addr")
+ debug_print("Loop %d (%s) has address %x to %x (bootstrap %x)" % (
+ looptoken.number, loopname,
+ rawstart + loop_head,
+ rawstart + size_excluding_failure_stuff,
+ rawstart))
+ debug_stop("jit-backend-addr")
+
return AsmInfo(ops_offset, rawstart + loop_head,
size_excluding_failure_stuff - loop_head)
@@ -635,7 +640,6 @@
if log:
operations = self._inject_debugging_code(faildescr, operations,
'b', descr_number)
- self._dump(operations, 'bridge')
assert isinstance(faildescr, AbstractFailDescr)
code = self._find_failure_recovery_bytecode(faildescr)
frame_depth = faildescr._arm_current_frame_depth
@@ -670,13 +674,18 @@
# for the benefit of tests
faildescr._arm_bridge_frame_depth = frame_depth
if log:
- print 'Bridge', inputargs, operations
self.mc._dump_trace(rawstart, 'bridge_%d.asm' %
self.cpu.total_compiled_bridges)
self.current_clt.frame_depth = max(self.current_clt.frame_depth,
frame_depth)
ops_offset = self.mc.ops_offset
self.teardown()
+
+ debug_start("jit-backend-addr")
+ debug_print("bridge out of Guard %d has address %x to %x" %
+ (descr_number, rawstart, rawstart + codeendpos))
+ debug_stop("jit-backend-addr")
+
return AsmInfo(ops_offset, startpos + rawstart, codeendpos - startpos)
def _find_failure_recovery_bytecode(self, faildescr):
diff --git a/pypy/jit/backend/arm/opassembler.py b/pypy/jit/backend/arm/opassembler.py
--- a/pypy/jit/backend/arm/opassembler.py
+++ b/pypy/jit/backend/arm/opassembler.py
@@ -194,9 +194,6 @@
descr = op.getdescr()
assert isinstance(descr, AbstractFailDescr)
- if not we_are_translated() and hasattr(op, 'getfailargs'):
- print 'Failargs: ', op.getfailargs()
-
pos = self.mc.currpos()
# For all guards that are not GUARD_NOT_INVALIDATED we emit a
# breakpoint to ensure the location is patched correctly. In the case
diff --git a/pypy/jit/backend/arm/runner.py b/pypy/jit/backend/arm/runner.py
--- a/pypy/jit/backend/arm/runner.py
+++ b/pypy/jit/backend/arm/runner.py
@@ -35,7 +35,7 @@
def compile_loop(self, inputargs, operations, looptoken,
log=True, name=''):
- return self.assembler.assemble_loop(inputargs, operations,
+ return self.assembler.assemble_loop(name, inputargs, operations,
looptoken, log=log)
def compile_bridge(self, faildescr, inputargs, operations,
More information about the pypy-commit
mailing list