[pypy-svn] r69507 - in pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp: . test
pedronis at codespeak.net
pedronis at codespeak.net
Sun Nov 22 17:59:27 CET 2009
Author: pedronis
Date: Sun Nov 22 17:59:26 2009
New Revision: 69507
Modified:
pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/jitprof.py
pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/resume.py
pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/test/test_jitprof.py
Log:
count right holes
Modified: pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/jitprof.py
==============================================================================
--- pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/jitprof.py (original)
+++ pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/jitprof.py Sun Nov 22 17:59:26 2009
@@ -23,6 +23,7 @@
NVIRTUALS
NVHOLES
NVREUSED
+NVRIGHTHOLES
"""
def _setup():
@@ -180,6 +181,7 @@
self._print_intline("bridge abort", cnt[ABORT_BRIDGE])
self._print_intline("nvirtuals", cnt[NVIRTUALS])
self._print_intline("nvholes", cnt[NVHOLES])
+ self._print_intline("nvrightholes", cnt[NVRIGHTHOLES])
self._print_intline("nvreused", cnt[NVREUSED])
def _print_line_time(self, string, i, tim):
Modified: pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/resume.py
==============================================================================
--- pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/resume.py (original)
+++ pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/resume.py Sun Nov 22 17:59:26 2009
@@ -116,6 +116,7 @@
self.nvirtuals = 0
self.nvholes = 0
+ self.nvrightholes = 0
self.nvreused = 0
def getconst(self, const):
@@ -226,6 +227,7 @@
profiler.count(jitprof.NVIRTUALS, self.nvirtuals)
profiler.count(jitprof.NVHOLES, self.nvholes)
profiler.count(jitprof.NVREUSED, self.nvreused)
+ profiler.count(jitprof.NVRIGHTHOLES, self.nvrightholes)
_frame_info_placeholder = (None, 0, 0)
@@ -339,6 +341,13 @@
if vinfo.fieldnums is not fieldnums:
memo.nvreused += 1
virtuals[num] = vinfo
+ # count right holes
+ r = 0
+ while r < length:
+ if virtuals[-1-r]:
+ break
+ r += 1
+ memo.nvrightholes += r
def _gettagged(self, box):
if isinstance(box, Const):
Modified: pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/test/test_jitprof.py
==============================================================================
--- pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/test/test_jitprof.py (original)
+++ pypy/branch/compress-virtuals-resumedata/pypy/jit/metainterp/test/test_jitprof.py Sun Nov 22 17:59:26 2009
@@ -64,7 +64,7 @@
assert profiler.events == expected
assert profiler.times == [2, 1, 1, 1]
assert profiler.counters == [1, 1, 1, 1, 4, 3, 1, 1, 7, 1, 0, 0, 0,
- 0, 0, 0]
+ 0, 0, 0, 0]
def test_simple_loop_with_call(self):
@dont_look_inside
More information about the Pypy-commit
mailing list