[pypy-svn] pypy jit-short-preamble: create snapshot in jit_merge_point
hakanardo
commits-noreply at bitbucket.org
Fri Jan 21 17:45:48 CET 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-short-preamble
Changeset: r41161:c92a41c33533
Date: 2011-01-21 16:07 +0100
http://bitbucket.org/pypy/pypy/changeset/c92a41c33533/
Log: create snapshot in jit_merge_point
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
@@ -821,11 +821,7 @@
@arguments("int", "orgpc")
def opimpl_loop_header(self, jdindex, orgpc):
- #resumedescr = compile.ResumeGuardDescr()
- resumedescr = compile.ResumeAtPositionDescr()
- self.capture_resumedata(resumedescr, orgpc)
self.metainterp.seen_loop_header_for_jdindex = jdindex
- self.metainterp.loop_header_resumedescr = resumedescr
def verify_green_args(self, jitdriver_sd, varargs):
num_green_args = jitdriver_sd.num_green_args
@@ -836,14 +832,8 @@
@arguments("orgpc", "int", "boxes3", "jitcode_position", "boxes3")
def opimpl_jit_merge_point(self, orgpc, jdindex, greenboxes,
jcposition, redboxes):
- #try:
- #resumedescr = compile.ResumeAtPositionDescr()
- #resumedescr = compile.ResumeGuardDescr()
- #self.capture_resumedata(resumedescr, orgpc)
- #except MissingLiveness:
- # resumedescr = None
- #resumedescr.rd_frame_info_list.pc = orgpc # FIXME: IS this safe?
- resumedescr = self.metainterp.loop_header_resumedescr
+ resumedescr = compile.ResumeAtPositionDescr()
+ self.capture_resumedata(resumedescr, orgpc)
any_operation = len(self.metainterp.history.operations) > 0
jitdriver_sd = self.metainterp.staticdata.jitdrivers_sd[jdindex]
@@ -1426,7 +1416,6 @@
self.free_frames_list = []
self.last_exc_value_box = None
self.retracing_loop_from = None
- self.loop_header_resumedescr = None
def perform_call(self, jitcode, boxes, greenkey=None):
# causes the metainterp to enter the given subfunction
@@ -1726,6 +1715,7 @@
self.resumekey = key
self.seen_loop_header_for_jdindex = -1
if isinstance(key, compile.ResumeAtPositionDescr):
+ self.seen_loop_header_for_jdindex = self.jitdriver_sd.index
dont_change_position = True
else:
dont_change_position = False
More information about the Pypy-commit
mailing list