diff options
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 4 | ||||
-rw-r--r-- | Python/specialize.c | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index cd05780..fa14a1c 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1651,6 +1651,7 @@ PyObject* _Py_HOT_FUNCTION _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int throwflag) { _Py_EnsureTstateNotNULL(tstate); + CALL_STAT_INC(pyeval_calls); #if USE_COMPUTED_GOTOS /* Import the static jump table */ @@ -2252,6 +2253,7 @@ handle_eval_breaker: _PyFrame_SetStackPointer(frame, stack_pointer); new_frame->previous = frame; frame = cframe.current_frame = new_frame; + CALL_STAT_INC(inlined_py_calls); goto start_frame; } @@ -4589,6 +4591,7 @@ handle_eval_breaker: _PyFrame_SetStackPointer(frame, stack_pointer); new_frame->previous = frame; cframe.current_frame = frame = new_frame; + CALL_STAT_INC(inlined_py_calls); goto start_frame; } /* Callable is not a normal Python function */ @@ -4705,6 +4708,7 @@ handle_eval_breaker: _PyFrame_SetStackPointer(frame, stack_pointer); new_frame->previous = frame; frame = cframe.current_frame = new_frame; + CALL_STAT_INC(inlined_py_calls); goto start_frame; } diff --git a/Python/specialize.c b/Python/specialize.c index a69b73c..aec94d9 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -163,9 +163,18 @@ print_spec_stats(FILE *out, OpcodeStats *stats) } #undef PRINT_STAT + +static void +print_call_stats(FILE *out, CallStats *stats) +{ + fprintf(out, "Calls to PyEval_EvalDefault: %" PRIu64 "\n", stats->pyeval_calls); + fprintf(out, "Calls to Python functions inlined: %" PRIu64 "\n", stats->inlined_py_calls); +} + static void print_stats(FILE *out, PyStats *stats) { print_spec_stats(out, stats->opcode_stats); + print_call_stats(out, &stats->call_stats); } void |