Author: Maciej Fijalkowski <fij...@gmail.com> 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 pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit