[pypy-commit] pypy jit-targets: translation fix
hakanardo
noreply at buildbot.pypy.org
Sun Nov 13 21:58:51 CET 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-targets
Changeset: r49383:e3289bc8ecbc
Date: 2011-11-13 18:07 +0100
http://bitbucket.org/pypy/pypy/changeset/e3289bc8ecbc/
Log: translation fix
diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -169,6 +169,7 @@
loop.original_jitcell_token = jitcell_token
for label in all_target_tokens:
+ assert isinstance(label, TargetToken)
label.original_jitcell_token = jitcell_token
jitcell_token.target_tokens = all_target_tokens
send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd, loop, "loop")
@@ -227,7 +228,9 @@
target_token = loop.operations[-1].getdescr()
resumekey.compile_and_attach(metainterp, loop)
- label.getdescr().original_jitcell_token = loop.original_jitcell_token
+ target_token = label.getdescr()
+ assert isinstance(target_token, TargetToken)
+ target_token.original_jitcell_token = loop.original_jitcell_token
record_loop_or_bridge(metainterp_sd, loop)
return target_token
diff --git a/pypy/jit/metainterp/optimizeopt/simplify.py b/pypy/jit/metainterp/optimizeopt/simplify.py
--- a/pypy/jit/metainterp/optimizeopt/simplify.py
+++ b/pypy/jit/metainterp/optimizeopt/simplify.py
@@ -40,7 +40,9 @@
assert isinstance(descr, JitCellToken)
if not descr.target_tokens:
assert self.last_label_descr is not None
- assert self.last_label_descr.targeting_jitcell_token is descr
+ target_token = self.last_label_descr
+ assert isinstance(target_token, TargetToken)
+ assert target_token.targeting_jitcell_token is descr
op.setdescr(self.last_label_descr)
else:
assert len(descr.target_tokens) == 1
diff --git a/pypy/jit/metainterp/optimizeopt/unroll.py b/pypy/jit/metainterp/optimizeopt/unroll.py
--- a/pypy/jit/metainterp/optimizeopt/unroll.py
+++ b/pypy/jit/metainterp/optimizeopt/unroll.py
@@ -24,7 +24,6 @@
self.importable_values = {}
self.emitting_dissabled = False
self.emitted_guards = 0
- self.inline_short_preamble = True
def ensure_imported(self, value):
if not self.emitting_dissabled and value in self.importable_values:
@@ -51,6 +50,9 @@
become the preamble or entry bridge (don't think there is a
distinction anymore)"""
+ inline_short_preamble = True
+ did_import = False
+
def __init__(self, metainterp_sd, loop, optimizations):
self.optimizer = UnrollableOptimizer(metainterp_sd, loop, optimizations)
@@ -110,7 +112,11 @@
self.export_state(stop_label)
loop.operations.append(stop_label)
else:
- assert stop_label.getdescr().targeting_jitcell_token is start_label.getdescr().targeting_jitcell_token
+ stop_target = stop_label.getdescr()
+ start_target = start_label.getdescr()
+ assert isinstance(stop_target, TargetToken)
+ assert isinstance(start_target, TargetToken)
+ assert stop_target.targeting_jitcell_token is start_target.targeting_jitcell_token
jumpop = ResOperation(rop.JUMP, stop_label.getarglist(), None, descr=start_label.getdescr())
self.close_loop(jumpop)
@@ -324,7 +330,9 @@
maxguards = self.optimizer.metainterp_sd.warmrunnerdesc.memory_manager.max_retrace_guards
if self.optimizer.emitted_guards > maxguards:
- jumpop.getdescr().targeting_jitcell_token.retraced_count = sys.maxint
+ target_token = jumpop.getdescr()
+ assert isinstance(target_token, TargetToken)
+ target_token.targeting_jitcell_token.retraced_count = sys.maxint
def finilize_short_preamble(self, start_label):
short = self.short
diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -2037,6 +2037,7 @@
live_arg_boxes[num_green_args:],
start_resumedescr)
if target_token is not None:
+ assert isinstance(target_token, TargetToken)
self.jitdriver_sd.warmstate.attach_procedure_to_interp(greenkey, target_token.targeting_jitcell_token)
self.staticdata.stats.add_jitcell_token(target_token.targeting_jitcell_token)
@@ -2044,6 +2045,7 @@
if target_token is not None: # raise if it *worked* correctly
self.history.inputargs = None
self.history.operations = None
+ assert isinstance(target_token, TargetToken)
raise GenerateMergePoint(live_arg_boxes, target_token.targeting_jitcell_token)
def compile_trace(self, live_arg_boxes, start_resumedescr):
@@ -2064,6 +2066,7 @@
if target_token is not None: # raise if it *worked* correctly
self.history.inputargs = None
self.history.operations = None
+ assert isinstance(target_token, TargetToken)
raise GenerateMergePoint(live_arg_boxes, target_token.targeting_jitcell_token)
def compile_bridge_and_loop(self, original_boxes, live_arg_boxes, start,
More information about the pypy-commit
mailing list