Author: Armin Rigo <[email protected]>
Branch: vtune
Changeset: r83565:82b4ebcd5392
Date: 2016-04-07 15:55 +0300
http://bitbucket.org/pypy/pypy/changeset/82b4ebcd5392/
Log: starting
diff --git a/rpython/jit/backend/x86/vtune.py b/rpython/jit/backend/x86/vtune.py
new file mode 100644
--- /dev/null
+++ b/rpython/jit/backend/x86/vtune.py
@@ -0,0 +1,42 @@
+"""
+Support for VTune Amplifier
+"""
+
+from rpython.rtyper.lltypesystem import lltype, rffi
+from rpython.translator.tool.cbuild import ExternalCompilationInfo
+
+
+eci = ExternalCompilationInfo(
+ post_include_bits=["""
+RPY_EXTERN void rpy_vtune_register(char *, long, long);
+"""],
+ include_dirs=["/opt/intel/vtune_amplifier_xe/include"],
+ separate_module_sources=["""
+#include "/opt/intel/vtune_amplifier_xe/sdk/src/ittnotify/jitprofiling.c"
+
+RPY_EXTERN void rpy_vtune_register(char *funcname, Signed addr, Signed length)
+{
+ iJIT_Method_Load_V2 jmethod = {0};
+
+ if (iJIT_IsProfilingActive() != iJIT_SAMPLING_ON) {
+ return;
+ }
+
+ jmethod.method_id = iJIT_GetNewMethodID();
+ jmethod.method_name = funcname;
+ jmethod.method_load_address = (void *)addr;
+ jmethod.method_size = length;
+ jmethod.module_name = "rpython_jit";
+
+ iJIT_NotifyEvent(iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED_V2,
+ (void*)&jmethod);
+}
+"""])
+
+rpy_vtune_register = rffi.llexternal(
+ "rpy_vtune_register",
+ [rffi.CCHARP, lltype.Signed, lltype.Signed],
+ lltype.Void,
+ compilation_info=eci,
+ _nowrapper=True,
+ sandboxsafe=True)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit