Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60586:169ce263f181
Date: 2013-01-28 10:53 +0200
http://bitbucket.org/pypy/pypy/changeset/169ce263f181/
Log: Make sure we call make_done_loop_tokens only once
diff --git a/rpython/jit/backend/model.py b/rpython/jit/backend/model.py
--- a/rpython/jit/backend/model.py
+++ b/rpython/jit/backend/model.py
@@ -1,5 +1,4 @@
from rpython.rlib.debug import debug_start, debug_print, debug_stop
-from rpython.jit.metainterp import compile
from rpython.rtyper.lltypesystem import lltype
class CPUTotalTracker(object):
@@ -23,7 +22,6 @@
propagate_exception_descr = None
def __init__(self):
- self.__dict__.update(compile.make_done_loop_tokens())
self.tracker = CPUTotalTracker()
def _freeze_(self):
diff --git a/rpython/jit/backend/test/runner_test.py
b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -2787,6 +2787,7 @@
looptoken = JitCellToken()
looptoken.outermost_jitdriver_sd = FakeJitDriverSD()
finish_descr = loop.operations[-1].getdescr()
+ self.cpu.done_with_this_frame_descr_int = BasicFinalDescr()
self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
ARGS = [lltype.Signed] * 10
RES = lltype.Signed
@@ -2858,6 +2859,7 @@
finish_descr = loop.operations[-1].getdescr()
looptoken = JitCellToken()
looptoken.outermost_jitdriver_sd = FakeJitDriverSD()
+ self.cpu.done_with_this_frame_descr_float = BasicFinalDescr()
self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
args = [longlong.getfloatstorage(1.2),
longlong.getfloatstorage(2.3)]
@@ -2950,6 +2952,7 @@
loop = parse(ops)
looptoken = JitCellToken()
looptoken.outermost_jitdriver_sd = FakeJitDriverSD()
+ self.cpu.done_with_this_frame_descr_float = BasicFinalDescr()
self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
finish_descr = loop.operations[-1].getdescr()
args = [longlong.getfloatstorage(1.25),
diff --git a/rpython/jit/metainterp/pyjitpl.py
b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -1420,6 +1420,11 @@
self._addr2name_values = []
self.__dict__.update(compile.make_done_loop_tokens())
+ for val in ['int', 'float', 'ref', 'void']:
+ fullname = 'done_with_this_frame_descr_' + val
+ setattr(self.cpu, fullname, getattr(self, fullname))
+ d = self.exit_frame_with_exception_descr_ref
+ self.cpu.exit_frame_with_exception_descr_ref = d
def _freeze_(self):
return True
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit