Author: Armin Rigo <ar...@tunes.org> Branch: remove-globals-in-jit Changeset: r59288:4ed15aefc3f0 Date: 2012-12-02 18:14 -0800 http://bitbucket.org/pypy/pypy/changeset/4ed15aefc3f0/
Log: Trying it out now: re-enable the JIT with continulets diff --git a/pypy/module/_continuation/interp_continuation.py b/pypy/module/_continuation/interp_continuation.py --- a/pypy/module/_continuation/interp_continuation.py +++ b/pypy/module/_continuation/interp_continuation.py @@ -34,7 +34,6 @@ if self.sthread is not None: raise geterror(self.space, "continulet already __init__ialized") sthread = build_sthread(self.space) - workaround_disable_jit(sthread) # # hackish: build the frame "by hand", passing it the correct arguments space = self.space @@ -77,7 +76,6 @@ global_state.clear() raise geterror(self.space, "continulet already finished") self.check_sthread() - workaround_disable_jit(self.sthread) # global_state.origin = self if to is None: @@ -271,16 +269,6 @@ sthread = ec.stacklet_thread = SThread(space, ec) return sthread -def workaround_disable_jit(sthread): - # A bad workaround to kill the JIT anywhere in this thread. - # This forces all the frames. It's a bad workaround because - # it takes O(depth) time, and it will cause some "abort: - # vable escape" in the JIT. The goal is to prevent any frame - # from being still virtuals, because the JIT generates code - # to un-virtualizable them "on demand" by loading values based - # on FORCE_TOKEN, which is an address in the stack. - sthread.ec.force_all_frames() - # ____________________________________________________________ def permute(space, args_w): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit