mirror of
https://github.com/python/cpython.git
synced 2025-08-23 10:16:01 +00:00
GH-115480: Reduce guard strength for binary ops when type of one operand is known already (GH-118050)
This commit is contained in:
parent
ceb6038b05
commit
a6647d16ab
10 changed files with 316 additions and 103 deletions
|
@ -426,6 +426,14 @@ dummy_func(
|
|||
EXIT_IF(!PyLong_CheckExact(right));
|
||||
}
|
||||
|
||||
op(_GUARD_NOS_INT, (left, unused -- left, unused)) {
|
||||
EXIT_IF(!PyLong_CheckExact(left));
|
||||
}
|
||||
|
||||
op(_GUARD_TOS_INT, (value -- value)) {
|
||||
EXIT_IF(!PyLong_CheckExact(value));
|
||||
}
|
||||
|
||||
pure op(_BINARY_OP_MULTIPLY_INT, (left, right -- res)) {
|
||||
STAT_INC(BINARY_OP, hit);
|
||||
res = _PyLong_Multiply((PyLongObject *)left, (PyLongObject *)right);
|
||||
|
@ -462,6 +470,14 @@ dummy_func(
|
|||
EXIT_IF(!PyFloat_CheckExact(right));
|
||||
}
|
||||
|
||||
op(_GUARD_NOS_FLOAT, (left, unused -- left, unused)) {
|
||||
EXIT_IF(!PyFloat_CheckExact(left));
|
||||
}
|
||||
|
||||
op(_GUARD_TOS_FLOAT, (value -- value)) {
|
||||
EXIT_IF(!PyFloat_CheckExact(value));
|
||||
}
|
||||
|
||||
pure op(_BINARY_OP_MULTIPLY_FLOAT, (left, right -- res)) {
|
||||
STAT_INC(BINARY_OP, hit);
|
||||
double dres =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue