Author: Armin Rigo <ar...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit