[pypy-commit] pypy improve-vmprof-testing: Improve the test, fix by adding another missing case
arigo
pypy.commits at gmail.com
Mon Aug 8 02:54:41 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: improve-vmprof-testing
Changeset: r86075:d58a138573e9
Date: 2016-08-08 08:54 +0200
http://bitbucket.org/pypy/pypy/changeset/d58a138573e9/
Log: Improve the test, fix by adding another missing case
diff --git a/rpython/jit/backend/test/test_rvmprof.py b/rpython/jit/backend/test/test_rvmprof.py
--- a/rpython/jit/backend/test/test_rvmprof.py
+++ b/rpython/jit/backend/test/test_rvmprof.py
@@ -139,7 +139,8 @@
else:
llfn()
c -= 1
- jit.promote(c + 5) # failing guard
+ if c & 1: # a failing guard
+ pass
raise MyExc(c)
def main(n):
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
@@ -1458,6 +1458,20 @@
from rpython.rlib.rvmprof import cintf
cintf.jit_rvmprof_code(leaving, box_unique_id.getint())
+ def handle_rvmprof_enter_on_resume(self):
+ code = self.bytecode
+ position = self.pc
+ opcode = ord(code[position])
+ if opcode == self.metainterp.staticdata.op_rvmprof_code:
+ arg1 = self.registers_i[ord(code[position + 1])].getint()
+ arg2 = self.registers_i[ord(code[position + 2])].getint()
+ if arg1 == 1:
+ # we are resuming at a position that will do a
+ # jit_rvmprof_code(1), when really executed. That's a
+ # hint for the need for a jit_rvmprof_code(0).
+ from rpython.rlib.rvmprof import cintf
+ cintf.jit_rvmprof_code(0, arg2)
+
# ------------------------------
def setup_call(self, argboxes):
diff --git a/rpython/jit/metainterp/resume.py b/rpython/jit/metainterp/resume.py
--- a/rpython/jit/metainterp/resume.py
+++ b/rpython/jit/metainterp/resume.py
@@ -1058,6 +1058,7 @@
f.setup_resume_at_op(pc)
resumereader.consume_boxes(f.get_current_position_info(),
f.registers_i, f.registers_r, f.registers_f)
+ f.handle_rvmprof_enter_on_resume()
return resumereader.liveboxes, virtualizable_boxes, virtualref_boxes
More information about the pypy-commit
mailing list