Making C profiling a configure option (at least temporarily)
This commit is contained in:
parent
9c18e81fb2
commit
4c70b69fb1
|
@ -3502,15 +3502,23 @@ call_function(PyObject ***pp_stack, int oparg
|
|||
PyCFunction meth = PyCFunction_GET_FUNCTION(func);
|
||||
PyObject *self = PyCFunction_GET_SELF(func);
|
||||
if (flags & METH_NOARGS && na == 0) {
|
||||
#ifdef WITH_C_PROF
|
||||
BEGIN_C_TRACE
|
||||
#endif
|
||||
x = (*meth)(self, NULL);
|
||||
#ifdef WITH_C_PROF
|
||||
END_C_TRACE
|
||||
#endif
|
||||
}
|
||||
else if (flags & METH_O && na == 1) {
|
||||
PyObject *arg = EXT_POP(*pp_stack);
|
||||
#ifdef WITH_C_PROF
|
||||
BEGIN_C_TRACE
|
||||
#endif
|
||||
x = (*meth)(self, arg);
|
||||
#ifdef WITH_C_PROF
|
||||
END_C_TRACE
|
||||
#endif
|
||||
Py_DECREF(arg);
|
||||
}
|
||||
else {
|
||||
|
@ -3521,7 +3529,9 @@ call_function(PyObject ***pp_stack, int oparg
|
|||
else {
|
||||
PyObject *callargs;
|
||||
callargs = load_args(pp_stack, na);
|
||||
#ifdef WITH_C_PROF
|
||||
BEGIN_C_TRACE
|
||||
#endif
|
||||
#ifdef WITH_TSC
|
||||
rdtscll(*pintr0);
|
||||
#endif
|
||||
|
@ -3529,7 +3539,9 @@ call_function(PyObject ***pp_stack, int oparg
|
|||
#ifdef WITH_TSC
|
||||
rdtscll(*pintr1);
|
||||
#endif
|
||||
#ifdef WITH_C_PROF
|
||||
END_C_TRACE
|
||||
#endif
|
||||
Py_XDECREF(callargs);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#! /bin/sh
|
||||
# From configure.in Revision: 1.457 .
|
||||
# From configure.in Revision: 1.458 .
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.59 for python 2.4.
|
||||
#
|
||||
|
@ -869,6 +869,7 @@ Optional Packages:
|
|||
deprecated; use --with(out)-threads
|
||||
--with-pth use GNU pth threading libraries
|
||||
--with(out)-doc-strings disable/enable documentation strings
|
||||
--with-c-profiling Enable profiling of builtins and C extension functions
|
||||
--with(out)-tsc enable/disable timestamp counter profile
|
||||
--with(out)-pymalloc disable/enable specialized mallocs
|
||||
--with-wctype-functions use wctype.h functions
|
||||
|
@ -13029,6 +13030,31 @@ fi
|
|||
echo "$as_me:$LINENO: result: $with_doc_strings" >&5
|
||||
echo "${ECHO_T}$with_doc_strings" >&6
|
||||
|
||||
# Check for C call profiling support
|
||||
echo "$as_me:$LINENO: checking for --with-c-profiling" >&5
|
||||
echo $ECHO_N "checking for --with-c-profiling... $ECHO_C" >&6
|
||||
|
||||
# Check whether --with-c-profiling or --without-c-profiling was given.
|
||||
if test "${with_c_profiling+set}" = set; then
|
||||
withval="$with_c_profiling"
|
||||
|
||||
if test "$withval" != no
|
||||
then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define WITH_C_PROF 1
|
||||
_ACEOF
|
||||
|
||||
echo "$as_me:$LINENO: result: yes" >&5
|
||||
echo "${ECHO_T}yes" >&6
|
||||
else echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi
|
||||
else
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi;
|
||||
|
||||
# Check for Python-specific malloc support
|
||||
echo "$as_me:$LINENO: checking for --with-tsc" >&5
|
||||
echo $ECHO_N "checking for --with-tsc... $ECHO_C" >&6
|
||||
|
|
13
configure.in
13
configure.in
|
@ -1946,6 +1946,19 @@ then
|
|||
fi
|
||||
AC_MSG_RESULT($with_doc_strings)
|
||||
|
||||
# Check for C call profiling support
|
||||
AC_MSG_CHECKING(for --with-c-profiling)
|
||||
AC_ARG_WITH(c-profiling,
|
||||
[ --with-c-profiling Enable profiling of builtins and C extension functions], [
|
||||
if test "$withval" != no
|
||||
then
|
||||
AC_DEFINE(WITH_C_PROF, 1,
|
||||
[Define to enable profile hooks for C extension functions and builtins])
|
||||
AC_MSG_RESULT(yes)
|
||||
else AC_MSG_RESULT(no)
|
||||
fi],
|
||||
[AC_MSG_RESULT(no)])
|
||||
|
||||
# Check for Python-specific malloc support
|
||||
AC_MSG_CHECKING(for --with-tsc)
|
||||
AC_ARG_WITH(tsc,
|
||||
|
|
|
@ -759,6 +759,9 @@
|
|||
/* Define if WINDOW in curses.h offers a field _flags. */
|
||||
#undef WINDOW_HAS_FLAGS
|
||||
|
||||
/* Define to enable profile hooks for C extension functions and builtins */
|
||||
#undef WITH_C_PROF
|
||||
|
||||
/* Define if you want documentation strings in extension modules */
|
||||
#undef WITH_DOC_STRINGS
|
||||
|
||||
|
|
Loading…
Reference in New Issue