[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