mirror of
https://github.com/python/cpython.git
synced 2025-10-23 09:53:47 +00:00
gh-132732: Clear errors in JIT optimizer on error (GH-136048)
This commit is contained in:
parent
26cfb17942
commit
46f823bb81
1 changed files with 10 additions and 3 deletions
|
@ -462,7 +462,7 @@ const uint16_t op_without_decref_inputs[MAX_UOP_ID + 1] = {
|
||||||
[_BINARY_OP_SUBTRACT_FLOAT] = _BINARY_OP_SUBTRACT_FLOAT__NO_DECREF_INPUTS,
|
[_BINARY_OP_SUBTRACT_FLOAT] = _BINARY_OP_SUBTRACT_FLOAT__NO_DECREF_INPUTS,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* 1 for success, 0 for not ready, cannot error at the moment. */
|
/* >0 (length) for success, 0 for not ready, clears all possible errors. */
|
||||||
static int
|
static int
|
||||||
optimize_uops(
|
optimize_uops(
|
||||||
PyCodeObject *co,
|
PyCodeObject *co,
|
||||||
|
@ -472,6 +472,7 @@ optimize_uops(
|
||||||
_PyBloomFilter *dependencies
|
_PyBloomFilter *dependencies
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
assert(!PyErr_Occurred());
|
||||||
|
|
||||||
JitOptContext context;
|
JitOptContext context;
|
||||||
JitOptContext *ctx = &context;
|
JitOptContext *ctx = &context;
|
||||||
|
@ -555,7 +556,11 @@ optimize_uops(
|
||||||
OPT_ERROR_IN_OPCODE(opcode);
|
OPT_ERROR_IN_OPCODE(opcode);
|
||||||
}
|
}
|
||||||
_Py_uop_abstractcontext_fini(ctx);
|
_Py_uop_abstractcontext_fini(ctx);
|
||||||
return -1;
|
|
||||||
|
assert(PyErr_Occurred());
|
||||||
|
PyErr_Clear();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -702,10 +707,12 @@ _Py_uop_analyze_and_optimize(
|
||||||
_PyFrame_GetCode(frame), buffer,
|
_PyFrame_GetCode(frame), buffer,
|
||||||
length, curr_stacklen, dependencies);
|
length, curr_stacklen, dependencies);
|
||||||
|
|
||||||
if (length <= 0) {
|
if (length == 0) {
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(length > 0);
|
||||||
|
|
||||||
length = remove_unneeded_uops(buffer, length);
|
length = remove_unneeded_uops(buffer, length);
|
||||||
assert(length > 0);
|
assert(length > 0);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue