Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r76232:a063ef6478b1
Date: 2015-03-03 20:10 +0100
http://bitbucket.org/pypy/pypy/changeset/a063ef6478b1/

Log:    hg backout e36875ce12ab

        This was a bogus solution. We can see in x86/runner.py that
        multiple invalidate_loop() with the same looptoken never patches the
        same location more than once. We need to debug and understand the
        original problem again.

        Additionally, e36875ce12ab has a bad performance effect on some
        benchmarks. I think it is because it is possible to have one loop
        that gets invalidated, but not the other loops that JMP or
        CALL_ASSEMBLER to it. That's how a guard_not_invalidated can fail a
        lot, and a reason why attaching a bridge to it can be a very good
        idea.

diff --git a/rpython/jit/metainterp/compile.py 
b/rpython/jit/metainterp/compile.py
--- a/rpython/jit/metainterp/compile.py
+++ b/rpython/jit/metainterp/compile.py
@@ -682,9 +682,6 @@
 class ResumeGuardNotInvalidated(ResumeGuardDescr):
     guard_opnum = rop.GUARD_NOT_INVALIDATED
 
-    def must_compile(self, deadframe, metainterp_sd, jitdriver_sd):
-        return False
-
 class ResumeAtPositionDescr(ResumeGuardDescr):
     guard_opnum = rop.GUARD_FUTURE_CONDITION
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to