[pypy-commit] pypy vmprof-newstack: small fixes
fijal
pypy.commits at gmail.com
Mon Jan 11 06:36:17 EST 2016
Author: fijal
Branch: vmprof-newstack
Changeset: r81669:80db53f41aa2
Date: 2016-01-11 13:35 +0200
http://bitbucket.org/pypy/pypy/changeset/80db53f41aa2/
Log: small fixes
diff --git a/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py b/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py
--- a/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py
+++ b/rpython/jit/backend/llsupport/test/zrpy_vmprof_test.py
@@ -19,9 +19,14 @@
from rpython.rlib import rvmprof
class MyCode:
- pass
+ def __init__(self, name):
+ self.name = name
+
def get_name(code):
- return 'py:code:52:x'
+ return code.name
+
+ code2 = MyCode("py:y:foo:4")
+
try:
rvmprof.register_code_object_class(MyCode, get_name)
except rvmprof.VMProfPlatformUnsupported, e:
@@ -40,15 +45,15 @@
while i < num:
driver.jit_merge_point(code=code, i=i, s=s, num=num)
s += (i << 1)
- if s % 32423423423 == 0 and s > 0 == 0:
- print s
+ if s % 3 == 0 and code is not code2:
+ main(code2, 100)
i += 1
return s
tmpfilename = str(udir.join('test_rvmprof'))
def f(num):
- code = MyCode()
+ code = MyCode("py:x:foo:3")
rvmprof.register_code(code, get_name)
fd = os.open(tmpfilename, os.O_WRONLY | os.O_CREAT, 0666)
period = 0.0001
@@ -67,7 +72,7 @@
import pdb
pdb.set_trace()
- self.meta_interp(f, [100000000])
+ self.meta_interp(f, [1000000])
try:
import vmprof
except ImportError:
diff --git a/rpython/rlib/rvmprof/rvmprof.py b/rpython/rlib/rvmprof/rvmprof.py
--- a/rpython/rlib/rvmprof/rvmprof.py
+++ b/rpython/rlib/rvmprof/rvmprof.py
@@ -33,7 +33,7 @@
self._code_classes = set()
self._gather_all_code_objs = lambda: None
self._cleanup_()
- self._code_unique_id = 0
+ self._code_unique_id = 4
self.cintf = cintf.setup()
def _cleanup_(self):
diff --git a/rpython/rlib/rvmprof/src/vmprof_main.h b/rpython/rlib/rvmprof/src/vmprof_main.h
--- a/rpython/rlib/rvmprof/src/vmprof_main.h
+++ b/rpython/rlib/rvmprof/src/vmprof_main.h
@@ -154,16 +154,15 @@
if (stack->kind == VMPROF_CODE_TAG) {
result[n] = stack->kind;
result[n + 1] = stack->value;
- stack = stack->next;
n += 2;
}
#ifdef PYPY_JIT_CODEMAP
else if (stack->kind == VMPROF_JITTED_TAG) {
pc = ((intptr_t*)(stack->value - sizeof(intptr_t)))[0];
n = vmprof_write_header_for_jit_addr(result, n, pc, max_depth);
- stack = stack->next;
}
#endif
+ stack = stack->next;
}
return n;
}
More information about the pypy-commit
mailing list