[pypy-commit] pypy optimizeopt-cleanup: Move record_loop_or_bridge() call inside compile_and_attach()
rlamy
pypy.commits at gmail.com
Thu May 9 10:40:01 EDT 2019
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: optimizeopt-cleanup
Changeset: r96582:db5154f11410
Date: 2019-05-02 04:23 +0100
http://bitbucket.org/pypy/pypy/changeset/db5154f11410/
Log: Move record_loop_or_bridge() call inside compile_and_attach()
diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py
--- a/rpython/jit/metainterp/compile.py
+++ b/rpython/jit/metainterp/compile.py
@@ -164,19 +164,14 @@
original_jitcell_token = loop.original_jitcell_token
assert original_jitcell_token is not None
if metainterp_sd.warmrunnerdesc is not None: # for tests
- assert original_jitcell_token.generation > 0 # has been registered with memmgr
+ assert original_jitcell_token.generation > 0 # has been registered with memmgr
wref = weakref.ref(original_jitcell_token)
clt = original_jitcell_token.compiled_loop_token
clt.loop_token_wref = wref
for op in loop.operations:
descr = op.getdescr()
- # not sure what descr.index is about
if isinstance(descr, ResumeDescr):
descr.rd_loop_token = clt # stick it there
- #n = descr.index
- #if n >= 0: # we also record the resumedescr number
- # original_jitcell_token.compiled_loop_token.record_faildescr_index(n)
- # pass
if isinstance(descr, JitCellToken):
# for a CALL_ASSEMBLER: record it as a potential jump.
if descr is not original_jitcell_token:
@@ -401,8 +396,6 @@
target_token = loop.operations[-1].getdescr()
resumekey.compile_and_attach(metainterp, loop, inputargs)
-
- record_loop_or_bridge(metainterp_sd, loop)
return target_token
def get_box_replacement(op, allow_none=False):
@@ -810,6 +803,7 @@
self, inputargs, new_loop.operations,
new_loop.original_jitcell_token,
metainterp.box_names_memo)
+ record_loop_or_bridge(metainterp.staticdata, new_loop)
def make_a_counter_per_value(self, guard_value_op, index):
assert guard_value_op.getopnum() == rop.GUARD_VALUE
@@ -1020,6 +1014,7 @@
jitdriver_sd.warmstate.attach_procedure_to_interp(
self.original_greenkey, jitcell_token)
metainterp_sd.stats.add_jitcell_token(jitcell_token)
+ record_loop_or_bridge(metainterp_sd, new_loop)
def get_resumestorage(self):
return None
@@ -1084,7 +1079,6 @@
new_trace.inputargs = info.inputargs
target_token = new_trace.operations[-1].getdescr()
resumekey.compile_and_attach(metainterp, new_trace, inputargs)
- record_loop_or_bridge(metainterp_sd, new_trace)
return target_token
new_trace.inputargs = info.renamed_inputargs
metainterp.retrace_needed(new_trace, info)
diff --git a/rpython/jit/metainterp/optimizeopt/__init__.py b/rpython/jit/metainterp/optimizeopt/__init__.py
--- a/rpython/jit/metainterp/optimizeopt/__init__.py
+++ b/rpython/jit/metainterp/optimizeopt/__init__.py
@@ -53,12 +53,12 @@
def optimize_trace(metainterp_sd, jitdriver_sd, compile_data, memo=None):
"""Optimize loop.operations to remove internal overheadish operations.
"""
+ if memo is None:
+ memo = {}
debug_start("jit-optimize")
try:
_log_loop_from_trace(metainterp_sd, compile_data.trace, memo,
is_unrolled=not compile_data.log_noopt)
- if memo is None:
- memo = {}
compile_data.box_names_memo = memo
optimizations = build_opt_chain(compile_data.enable_opts)
return compile_data.optimize(
More information about the pypy-commit
mailing list