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