[pypy-commit] pypy default: A systematic fix for slow get_printable_location(): if we call
arigo
noreply at buildbot.pypy.org
Fri Apr 3 15:09:38 CEST 2015
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r76700:c3223de868fa
Date: 2015-04-03 15:09 +0200
http://bitbucket.org/pypy/pypy/changeset/c3223de868fa/
Log: A systematic fix for slow get_printable_location(): if we call
get_location_str() while debug_prints are disabled, it will just
return a "disabled" string now.
diff --git a/rpython/jit/metainterp/warmstate.py b/rpython/jit/metainterp/warmstate.py
--- a/rpython/jit/metainterp/warmstate.py
+++ b/rpython/jit/metainterp/warmstate.py
@@ -4,6 +4,7 @@
from rpython.jit.codewriter import support, heaptracker, longlong
from rpython.jit.metainterp import history
from rpython.rlib.debug import debug_start, debug_stop, debug_print
+from rpython.rlib.debug import have_debug_prints
from rpython.rlib.jit import PARAMETERS
from rpython.rlib.nonconst import NonConstant
from rpython.rlib.objectmodel import specialize, we_are_translated, r_dict
@@ -619,21 +620,28 @@
self.get_assembler_token = get_assembler_token
#
+ jitdriver = self.jitdriver_sd.jitdriver
+ if self.jitdriver_sd.jitdriver:
+ drivername = jitdriver.name
+ else:
+ drivername = '<unknown jitdriver>'
get_location_ptr = self.jitdriver_sd._get_printable_location_ptr
if get_location_ptr is None:
- jitdriver = self.jitdriver_sd.jitdriver
- if self.jitdriver_sd.jitdriver:
- drivername = jitdriver.name
- else:
- drivername = '<unknown jitdriver>'
missing = '(%s: no get_printable_location)' % drivername
def get_location_str(greenkey):
return missing
else:
rtyper = self.warmrunnerdesc.rtyper
unwrap_greenkey = self.make_unwrap_greenkey()
+ # the following missing text should not be seen, as it is
+ # returned only if debug_prints are currently not enabled,
+ # but it may show up anyway (consider it bugs)
+ missing = ('(%s: get_printable_location '
+ 'disabled, no debug_print)' % drivername)
#
def get_location_str(greenkey):
+ if not have_debug_prints():
+ return missing
greenargs = unwrap_greenkey(greenkey)
fn = support.maybe_on_top_of_llinterp(rtyper, get_location_ptr)
llres = fn(*greenargs)
More information about the pypy-commit
mailing list