From: Eric Snow Date: Sat, 9 Mar 2019 00:25:54 +0000 (-0700) Subject: Simplify DISPATCH by hoisting eval_breaker ahead of time. (gh-12243) X-Git-Tag: v3.8.0a3~140 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7bda9de5504382931822baecba7f85028031c2cd;p=thirdparty%2FPython%2Fcpython.git Simplify DISPATCH by hoisting eval_breaker ahead of time. (gh-12243) --- diff --git a/Python/ceval.c b/Python/ceval.c index b311248c6a20..ab6a5e0f1218 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -602,6 +602,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag) PyObject **fastlocals, **freevars; PyObject *retval = NULL; /* Return value */ PyThreadState *tstate = _PyThreadState_GET(); + _Py_atomic_int *eval_breaker = &_PyRuntime.ceval.eval_breaker; PyCodeObject *co; /* when tracing we set things up so that @@ -687,7 +688,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag) #define DISPATCH() \ { \ - if (!_Py_atomic_load_relaxed(&_PyRuntime.ceval.eval_breaker)) { \ + if (!_Py_atomic_load_relaxed(eval_breaker)) { \ FAST_DISPATCH(); \ } \ continue; \ @@ -989,7 +990,7 @@ main_loop: async I/O handler); see Py_AddPendingCall() and Py_MakePendingCalls() above. */ - if (_Py_atomic_load_relaxed(&_PyRuntime.ceval.eval_breaker)) { + if (_Py_atomic_load_relaxed(eval_breaker)) { opcode = _Py_OPCODE(*next_instr); if (opcode == SETUP_FINALLY || opcode == SETUP_WITH ||