_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_BinaryOp(lhs, rhs, next_instr, oparg, LOCALS_ARRAY);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(BINARY_OP);
if (!PyFloat_CheckExact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyFloat_CheckExact(left_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_CheckExactAndCompact(left_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (PyStackRef_IsNull(res)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
PyStackRef_CLOSE_SPECIALIZED(right, _PyLong_ExactDealloc);
if (!PyUnicode_CheckExact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyUnicode_CheckExact(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!res) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyUnicode_CheckExact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyUnicode_CheckExact(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (PyStackRef_AsPyObjectBorrow(*target_local) != left_o) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
STAT_INC(BINARY_OP, hit);
if (!PyFloat_CheckExact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyFloat_CheckExact(left_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_CheckExactAndCompact(left_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (PyStackRef_IsNull(res)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
PyStackRef_CLOSE_SPECIALIZED(right, _PyLong_ExactDealloc);
if (!PyDict_CheckExact(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
PyHeapTypeObject *ht = (PyHeapTypeObject *)tp;
if (getitem_o == NULL) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
assert(PyFunction_Check(getitem_o));
if (((PyFunctionObject *)getitem_o)->func_version != cached_version) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
PyCodeObject *code = (PyCodeObject *)PyFunction_GET_CODE(getitem_o);
if (!_PyThreadState_HasStackSpace(tstate, code->co_framesize)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
getitem = PyStackRef_FromPyObjectNew(getitem_o);
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyList_CheckExact(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0];
if (res_o == NULL) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
STAT_INC(BINARY_OP, hit);
if (index >= PyList_GET_SIZE(list)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
STAT_INC(BINARY_OP, hit);
if (!PySlice_Check(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyList_CheckExact(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyUnicode_CheckExact(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0];
if (PyUnicode_GET_LENGTH(str) <= index) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
Py_UCS4 c = PyUnicode_READ_CHAR(str, index);
if (Py_ARRAY_LENGTH(_Py_SINGLETON(strings).ascii) <= c) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
STAT_INC(BINARY_OP, hit);
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyTuple_CheckExact(o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0];
if (index >= PyTuple_GET_SIZE(tuple)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
STAT_INC(BINARY_OP, hit);
if (!PyFloat_CheckExact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!PyFloat_CheckExact(left_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (!_PyLong_CheckExactAndCompact(left_o)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
}
if (PyStackRef_IsNull(res)) {
UPDATE_MISS_STATS(BINARY_OP);
assert(_PyOpcode_Deopt[opcode] == (BINARY_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(BINARY_OP);
}
PyStackRef_CLOSE_SPECIALIZED(right, _PyLong_ExactDealloc);
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_Call(callable, next_instr, oparg + !PyStackRef_IsNull(self_or_null));
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(CALL);
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyStackRef_IsNull(self_or_null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (!PyType_Check(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyTypeObject *tp = (PyTypeObject *)callable_o;
if (FT_ATOMIC_LOAD_UINT32_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
assert(tp->tp_new == PyBaseObject_Type.tp_new);
if (!_PyThreadState_HasStackSpace(tstate, code->co_framesize + _Py_InitCleanup.co_framesize)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (Py_TYPE(PyStackRef_AsPyObjectBorrow(callable)) != &PyMethod_Type) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyFunction_Check(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyFunctionObject *func = (PyFunctionObject *)callable_o;
if (func->func_version != func_version) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (code->co_argcount != oparg + (!PyStackRef_IsNull(self_or_null))) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!_PyThreadState_HasStackSpace(tstate, code->co_framesize)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (tstate->py_recursion_remaining <= 1) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (Py_TYPE(callable_o) != &PyMethod_Type) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyObject *func = ((PyMethodObject *)callable_o)->im_func;
if (!PyFunction_Check(func)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (((PyFunctionObject *)func)->func_version != func_version) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (tstate->py_recursion_remaining <= 1) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyType_Check(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyTypeObject *tp = (PyTypeObject *)callable_o;
if (tp->tp_vectorcall == NULL) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (!PyCFunction_CheckExact(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (PyCFunction_GET_FLAGS(callable_o) != METH_FASTCALL) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (!PyCFunction_CheckExact(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (PyCFunction_GET_FLAGS(callable_o) != (METH_FASTCALL | METH_KEYWORDS)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (total_args != 1) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (!PyCFunction_CheckExact(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (PyCFunction_GET_FLAGS(callable_o) != METH_O) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (_Py_ReachedRecursionLimit(tstate)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (callable_o != interp->callable_cache.isinstance) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_CallKw(callable, next_instr, oparg + !PyStackRef_IsNull(self_or_null));
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(CALL_KW);
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
}
if (Py_TYPE(callable_o) != &PyMethod_Type) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
PyObject *func = ((PyMethodObject *)callable_o)->im_func;
if (!PyFunction_Check(func)) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
if (((PyFunctionObject *)func)->func_version != func_version) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
}
if (PyFunction_Check(callable_o)) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
if (Py_TYPE(callable_o) == &PyMethod_Type) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
}
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
}
if (!PyFunction_Check(callable_o)) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
PyFunctionObject *func = (PyFunctionObject *)callable_o;
if (func->func_version != func_version) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
}
if (tstate->py_recursion_remaining <= 1) {
UPDATE_MISS_STATS(CALL_KW);
assert(_PyOpcode_Deopt[opcode] == (CALL_KW));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL_KW);
}
}
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (callable_o != interp->callable_cache.len) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (callable_o != interp->callable_cache.list_append) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (o == NULL) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyList_CheckExact(o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyList_CheckExact(self_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (!LOCK_OBJECT(self_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (total_args == 0) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyMethodDescrObject *method = (PyMethodDescrObject *)callable_o;
if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyMethodDef *meth = method->d_method;
if (meth->ml_flags != METH_FASTCALL) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyObject *self = PyStackRef_AsPyObjectBorrow(arguments[0]);
if (!Py_IS_TYPE(self, method->d_common.d_type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (total_args == 0) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyMethodDescrObject *method = (PyMethodDescrObject *)callable_o;
if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyMethodDef *meth = method->d_method;
if (meth->ml_flags != (METH_FASTCALL|METH_KEYWORDS)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyTypeObject *d_type = method->d_common.d_type;
if (!Py_IS_TYPE(self, d_type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (total_args != 1) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyMethodDescrObject *method = (PyMethodDescrObject *)callable_o;
if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyMethodDef *meth = method->d_method;
if (!Py_IS_TYPE(self, method->d_common.d_type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (meth->ml_flags != METH_NOARGS) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (_Py_ReachedRecursionLimit(tstate)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (total_args != 2) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyMethodDef *meth = method->d_method;
if (meth->ml_flags != METH_O) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (_Py_ReachedRecursionLimit(tstate)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
_PyStackRef arg_stackref = arguments[1];
method->d_common.d_type)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
STAT_INC(CALL, hit);
if (PyFunction_Check(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
if (Py_TYPE(callable_o) == &PyMethod_Type) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyFunction_Check(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyFunctionObject *func = (PyFunctionObject *)callable_o;
if (func->func_version != func_version) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (code->co_argcount != oparg + (!PyStackRef_IsNull(self_or_null))) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!_PyThreadState_HasStackSpace(tstate, code->co_framesize)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (tstate->py_recursion_remaining <= 1) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyFunction_Check(callable_o)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
PyFunctionObject *func = (PyFunctionObject *)callable_o;
if (func->func_version != func_version) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (tstate->py_recursion_remaining <= 1) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (callable_o != (PyObject *)&PyUnicode_Type) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (callable_o != (PyObject *)&PyTuple_Type) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (!PyStackRef_IsNull(null)) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
if (callable_o != (PyObject *)&PyType_Type) {
UPDATE_MISS_STATS(CALL);
assert(_PyOpcode_Deopt[opcode] == (CALL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CALL);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_CompareOp(left, right, next_instr, oparg);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(COMPARE_OP);
if (!PyFloat_CheckExact(value_o)) {
UPDATE_MISS_STATS(COMPARE_OP);
assert(_PyOpcode_Deopt[opcode] == (COMPARE_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(COMPARE_OP);
}
}
if (!PyFloat_CheckExact(left_o)) {
UPDATE_MISS_STATS(COMPARE_OP);
assert(_PyOpcode_Deopt[opcode] == (COMPARE_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(COMPARE_OP);
}
}
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(COMPARE_OP);
assert(_PyOpcode_Deopt[opcode] == (COMPARE_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(COMPARE_OP);
}
}
if (!_PyLong_CheckExactAndCompact(left_o)) {
UPDATE_MISS_STATS(COMPARE_OP);
assert(_PyOpcode_Deopt[opcode] == (COMPARE_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(COMPARE_OP);
}
}
if (!PyUnicode_CheckExact(value_o)) {
UPDATE_MISS_STATS(COMPARE_OP);
assert(_PyOpcode_Deopt[opcode] == (COMPARE_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(COMPARE_OP);
}
}
if (!PyUnicode_CheckExact(o)) {
UPDATE_MISS_STATS(COMPARE_OP);
assert(_PyOpcode_Deopt[opcode] == (COMPARE_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(COMPARE_OP);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_ContainsOp(right, next_instr);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(CONTAINS_OP);
if (!PyDict_CheckExact(o)) {
UPDATE_MISS_STATS(CONTAINS_OP);
assert(_PyOpcode_Deopt[opcode] == (CONTAINS_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CONTAINS_OP);
}
}
if (!PyAnySet_CheckExact(o)) {
UPDATE_MISS_STATS(CONTAINS_OP);
assert(_PyOpcode_Deopt[opcode] == (CONTAINS_OP));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(CONTAINS_OP);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_ForIter(iter, null_or_index, next_instr, oparg);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(FOR_ITER);
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
}
if (Py_TYPE(gen) != &PyGen_Type) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
#ifdef Py_GIL_DISABLED
if (!_PyObject_IsUniquelyReferenced((PyObject *)gen)) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
#endif
if (gen->gi_frame_state >= FRAME_EXECUTING) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
STAT_INC(FOR_ITER, hit);
iter = stack_pointer[-2];
PyObject *iter_o = PyStackRef_AsPyObjectBorrow(iter);
if (Py_TYPE(iter_o) != &PyList_Type) {
- UPDATE_MISS_STATS(FOR_ITER);
- assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
+ UPDATE_MISS_STATS(FOR_ITER);
+ assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
JUMP_TO_PREDICTED(FOR_ITER);
}
assert(PyStackRef_IsTaggedInt(null_or_index));
if (!_Py_IsOwnedByCurrentThread(iter_o) && !_PyObject_GC_IS_SHARED(iter_o)) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
#endif
if (result < 0) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
if (result == 0) {
if (Py_TYPE(r) != &PyRangeIter_Type) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
#ifdef Py_GIL_DISABLED
if (!_PyObject_IsUniquelyReferenced((PyObject *)r)) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
#endif
if (Py_TYPE(iter_o) != &PyTuple_Type) {
UPDATE_MISS_STATS(FOR_ITER);
assert(_PyOpcode_Deopt[opcode] == (FOR_ITER));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(FOR_ITER);
}
assert(PyStackRef_IsTaggedInt(null_or_index));
uint8_t desired = tstate->interp->jit ? JUMP_BACKWARD_JIT : JUMP_BACKWARD_NO_JIT;
FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, desired);
next_instr = this_instr;
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
#endif
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_LoadAttr(owner, next_instr, name);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(LOAD_ATTR);
if (!PyType_Check(owner_o)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
assert(type_version != 0);
if (FT_ATOMIC_LOAD_UINT_RELAXED(((PyTypeObject *)owner_o)->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (!PyType_Check(owner_o)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
assert(type_version != 0);
if (FT_ATOMIC_LOAD_UINT_RELAXED(((PyTypeObject *)owner_o)->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
PyTypeObject *cls = Py_TYPE(owner_o);
if (FT_ATOMIC_LOAD_UINT_RELAXED(cls->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
assert(Py_IS_TYPE(getattribute, &PyFunction_Type));
if (f->func_version != func_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
PyCodeObject *code = (PyCodeObject *)f->func_code;
if (!_PyThreadState_HasStackSpace(tstate, code->co_framesize)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
STAT_INC(LOAD_ATTR, hit);
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (!FT_ATOMIC_LOAD_UINT8(_PyObject_InlineValues(owner_o)->valid)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (attr_o == NULL) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
#ifdef Py_GIL_DISABLED
if (true) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (dict != NULL) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (!FT_ATOMIC_LOAD_UINT8(ivs->valid)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != keys_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (Py_TYPE(owner_o)->tp_getattro != PyModule_Type.tp_getattro) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner_o)->md_dict;
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != dict_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
assert(keys->dk_kind == DICT_KEYS_UNICODE);
if (attr_o == NULL) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
#ifdef Py_GIL_DISABLED
if (true) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (!FT_ATOMIC_LOAD_UINT8(ivs->valid)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != keys_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if ((code->co_flags & (CO_VARKEYWORDS | CO_VARARGS | CO_OPTIMIZED)) != CO_OPTIMIZED) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
if (code->co_kwonlyargcount) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
if (code->co_argcount != 1) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
if (!_PyThreadState_HasStackSpace(tstate, code->co_framesize)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
STAT_INC(LOAD_ATTR, hit);
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (attr_o == NULL) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
#ifdef Py_GIL_DISABLED
if (!increfed) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
#else
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (dict == NULL) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
PyDictKeysObject *dk = FT_ATOMIC_LOAD_PTR(dict->ma_keys);
if (!_Py_IsOwnedByCurrentThread((PyObject *)dict) && !_PyObject_GC_IS_SHARED(dict)) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
#endif
if (true) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (true) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (true) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (true) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
if (true) {
UPDATE_MISS_STATS(LOAD_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_ATTR);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_LoadGlobal(GLOBALS(), BUILTINS(), next_instr, name);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(LOAD_GLOBAL);
if (!PyDict_CheckExact(dict)) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
PyDictKeysObject *keys = FT_ATOMIC_LOAD_PTR_ACQUIRE(dict->ma_keys);
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != version) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
assert(DK_IS_UNICODE(keys));
if (!PyDict_CheckExact(dict)) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
PyDictKeysObject *keys = FT_ATOMIC_LOAD_PTR_ACQUIRE(dict->ma_keys);
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != version) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
assert(DK_IS_UNICODE(keys));
if (res_o == NULL) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
#if Py_GIL_DISABLED
if (!increfed) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
#else
if (!PyDict_CheckExact(dict)) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
PyDictKeysObject *keys = FT_ATOMIC_LOAD_PTR_ACQUIRE(dict->ma_keys);
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != version) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
assert(DK_IS_UNICODE(keys));
if (res_o == NULL) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
#if Py_GIL_DISABLED
if (!increfed) {
UPDATE_MISS_STATS(LOAD_GLOBAL);
assert(_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_GLOBAL);
}
#else
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_LoadSuperAttr(global_super_st, class_st, next_instr, load_method);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(LOAD_SUPER_ATTR);
if (global_super != (PyObject *)&PySuper_Type) {
UPDATE_MISS_STATS(LOAD_SUPER_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_SUPER_ATTR);
}
if (!PyType_Check(class)) {
UPDATE_MISS_STATS(LOAD_SUPER_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_SUPER_ATTR);
}
STAT_INC(LOAD_SUPER_ATTR, hit);
if (global_super != (PyObject *)&PySuper_Type) {
UPDATE_MISS_STATS(LOAD_SUPER_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_SUPER_ATTR);
}
if (!PyType_Check(class)) {
UPDATE_MISS_STATS(LOAD_SUPER_ATTR);
assert(_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(LOAD_SUPER_ATTR);
}
STAT_INC(LOAD_SUPER_ATTR, hit);
if (_Py_emscripten_signal_clock == 0) {
UPDATE_MISS_STATS(RESUME);
assert(_PyOpcode_Deopt[opcode] == (RESUME));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(RESUME);
}
_Py_emscripten_signal_clock -= Py_EMSCRIPTEN_SIGNAL_HANDLING;
if (eval_breaker != version) {
UPDATE_MISS_STATS(RESUME);
assert(_PyOpcode_Deopt[opcode] == (RESUME));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(RESUME);
}
#ifdef Py_GIL_DISABLED
((_PyThreadStateImpl *)tstate)->tlbc_index) {
UPDATE_MISS_STATS(RESUME);
assert(_PyOpcode_Deopt[opcode] == (RESUME));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(RESUME);
}
#endif
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_Send(receiver, next_instr);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(SEND);
if (tstate->interp->eval_frame) {
UPDATE_MISS_STATS(SEND);
assert(_PyOpcode_Deopt[opcode] == (SEND));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(SEND);
}
}
if (Py_TYPE(gen) != &PyGen_Type && Py_TYPE(gen) != &PyCoro_Type) {
UPDATE_MISS_STATS(SEND);
assert(_PyOpcode_Deopt[opcode] == (SEND));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(SEND);
}
if (gen->gi_frame_state >= FRAME_EXECUTING) {
UPDATE_MISS_STATS(SEND);
assert(_PyOpcode_Deopt[opcode] == (SEND));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(SEND);
}
STAT_INC(SEND, hit);
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_StoreAttr(owner, next_instr, name);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(STORE_ATTR);
if (!LOCK_OBJECT(owner_o)) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
PyTypeObject *tp = Py_TYPE(owner_o);
if (true) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
}
if (true) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
}
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
}
if (!LOCK_OBJECT(owner_o)) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
char *addr = (char *)owner_o + index;
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
}
if (dict == NULL) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
if (!LOCK_OBJECT(dict)) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
assert(PyDict_CheckExact((PyObject *)dict));
if (true) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
}
if (true) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
}
if (true) {
UPDATE_MISS_STATS(STORE_ATTR);
assert(_PyOpcode_Deopt[opcode] == (STORE_ATTR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_ATTR);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_StoreSubscr(container, sub, next_instr);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(STORE_SUBSCR);
if (!PyDict_CheckExact(o)) {
UPDATE_MISS_STATS(STORE_SUBSCR);
assert(_PyOpcode_Deopt[opcode] == (STORE_SUBSCR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_SUBSCR);
}
}
if (!_PyLong_CheckExactAndCompact(value_o)) {
UPDATE_MISS_STATS(STORE_SUBSCR);
assert(_PyOpcode_Deopt[opcode] == (STORE_SUBSCR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_SUBSCR);
}
}
if (!PyList_CheckExact(o)) {
UPDATE_MISS_STATS(STORE_SUBSCR);
assert(_PyOpcode_Deopt[opcode] == (STORE_SUBSCR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_SUBSCR);
}
}
if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) {
UPDATE_MISS_STATS(STORE_SUBSCR);
assert(_PyOpcode_Deopt[opcode] == (STORE_SUBSCR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_SUBSCR);
}
Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0];
if (!LOCK_OBJECT(list)) {
UPDATE_MISS_STATS(STORE_SUBSCR);
assert(_PyOpcode_Deopt[opcode] == (STORE_SUBSCR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_SUBSCR);
}
if (index >= PyList_GET_SIZE(list)) {
if (true) {
UPDATE_MISS_STATS(STORE_SUBSCR);
assert(_PyOpcode_Deopt[opcode] == (STORE_SUBSCR));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(STORE_SUBSCR);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_ToBool(value, next_instr);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(TO_BOOL);
if (FT_ATOMIC_LOAD_UINT_RELAXED(tp->tp_version_tag) != type_version) {
UPDATE_MISS_STATS(TO_BOOL);
assert(_PyOpcode_Deopt[opcode] == (TO_BOOL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(TO_BOOL);
}
}
if (!PyStackRef_BoolCheck(value)) {
UPDATE_MISS_STATS(TO_BOOL);
assert(_PyOpcode_Deopt[opcode] == (TO_BOOL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(TO_BOOL);
}
STAT_INC(TO_BOOL, hit);
if (!PyLong_CheckExact(value_o)) {
UPDATE_MISS_STATS(TO_BOOL);
assert(_PyOpcode_Deopt[opcode] == (TO_BOOL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(TO_BOOL);
}
STAT_INC(TO_BOOL, hit);
if (!PyList_CheckExact(o)) {
UPDATE_MISS_STATS(TO_BOOL);
assert(_PyOpcode_Deopt[opcode] == (TO_BOOL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(TO_BOOL);
}
}
if (!PyStackRef_IsNone(value)) {
UPDATE_MISS_STATS(TO_BOOL);
assert(_PyOpcode_Deopt[opcode] == (TO_BOOL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(TO_BOOL);
}
STAT_INC(TO_BOOL, hit);
if (!PyUnicode_CheckExact(value_o)) {
UPDATE_MISS_STATS(TO_BOOL);
assert(_PyOpcode_Deopt[opcode] == (TO_BOOL));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(TO_BOOL);
}
}
_PyFrame_SetStackPointer(frame, stack_pointer);
_Py_Specialize_UnpackSequence(seq, next_instr, oparg);
stack_pointer = _PyFrame_GetStackPointer(frame);
+ #if _Py_TIER2
+ tstate->interp->jit_state.specialize_counter++;
+ #endif
DISPATCH_SAME_OPARG();
}
OPCODE_DEFERRED_INC(UNPACK_SEQUENCE);
if (!PyList_CheckExact(o)) {
UPDATE_MISS_STATS(UNPACK_SEQUENCE);
assert(_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(UNPACK_SEQUENCE);
}
}
if (!LOCK_OBJECT(seq_o)) {
UPDATE_MISS_STATS(UNPACK_SEQUENCE);
assert(_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(UNPACK_SEQUENCE);
}
if (PyList_GET_SIZE(seq_o) != oparg) {
if (true) {
UPDATE_MISS_STATS(UNPACK_SEQUENCE);
assert(_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(UNPACK_SEQUENCE);
}
}
if (!PyTuple_CheckExact(o)) {
UPDATE_MISS_STATS(UNPACK_SEQUENCE);
assert(_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(UNPACK_SEQUENCE);
}
}
if (PyTuple_GET_SIZE(seq_o) != oparg) {
UPDATE_MISS_STATS(UNPACK_SEQUENCE);
assert(_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(UNPACK_SEQUENCE);
}
STAT_INC(UNPACK_SEQUENCE, hit);
if (!PyTuple_CheckExact(o)) {
UPDATE_MISS_STATS(UNPACK_SEQUENCE);
assert(_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(UNPACK_SEQUENCE);
}
}
if (PyTuple_GET_SIZE(seq_o) != 2) {
UPDATE_MISS_STATS(UNPACK_SEQUENCE);
assert(_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE));
- #if _Py_TIER2
- tstate->interp->jit_state.specialize_counter++;
- #endif
JUMP_TO_PREDICTED(UNPACK_SEQUENCE);
}
STAT_INC(UNPACK_SEQUENCE, hit);