Skip to content

Commit

Permalink
Making C profiling a configure option (at least temporarily)
Browse files Browse the repository at this point in the history
  • Loading branch information
nbastin committed Jun 22, 2004
1 parent 9c18e81 commit 4c70b69
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 1 deletion.
12 changes: 12 additions & 0 deletions Python/ceval.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -3521,15 +3529,19 @@ 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
x = PyCFunction_Call(func, callargs, NULL);
#ifdef WITH_TSC
rdtscll(*pintr1);
#endif
#ifdef WITH_C_PROF
END_C_TRACE
#endif
Py_XDECREF(callargs);
}
} else {
Expand Down
28 changes: 27 additions & 1 deletion configure
Original file line number Diff line number Diff line change
@@ -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.
#
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
13 changes: 13 additions & 0 deletions configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
3 changes: 3 additions & 0 deletions pyconfig.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit 4c70b69

Please sign in to comment.