mirror of
https://github.com/python/cpython.git
synced 2025-12-31 12:33:28 +00:00
gh-134584: JIT: Eliminate redundant refcount ops for X_INT (GH-142765)
This commit is contained in:
parent
0978b9a7d5
commit
790a46a449
9 changed files with 1050 additions and 1246 deletions
|
|
@ -251,37 +251,37 @@ dummy_func(void) {
|
|||
}
|
||||
}
|
||||
|
||||
op(_BINARY_OP_ADD_INT, (left, right -- res)) {
|
||||
REPLACE_OPCODE_IF_EVALUATES_PURE(left, right);
|
||||
op(_BINARY_OP_ADD_INT, (left, right -- res, l, r)) {
|
||||
res = sym_new_compact_int(ctx);
|
||||
l = left;
|
||||
r = right;
|
||||
}
|
||||
|
||||
op(_BINARY_OP_SUBTRACT_INT, (left, right -- res)) {
|
||||
REPLACE_OPCODE_IF_EVALUATES_PURE(left, right);
|
||||
op(_BINARY_OP_SUBTRACT_INT, (left, right -- res, l, r)) {
|
||||
res = sym_new_compact_int(ctx);
|
||||
l = left;
|
||||
r = right;
|
||||
}
|
||||
|
||||
op(_BINARY_OP_MULTIPLY_INT, (left, right -- res)) {
|
||||
REPLACE_OPCODE_IF_EVALUATES_PURE(left, right);
|
||||
op(_BINARY_OP_MULTIPLY_INT, (left, right -- res, l, r)) {
|
||||
res = sym_new_compact_int(ctx);
|
||||
l = left;
|
||||
r = right;
|
||||
}
|
||||
|
||||
op(_BINARY_OP_ADD_FLOAT, (left, right -- res, l, r)) {
|
||||
REPLACE_OPCODE_IF_EVALUATES_PURE(left, right);
|
||||
res = sym_new_type(ctx, &PyFloat_Type);
|
||||
l = left;
|
||||
r = right;
|
||||
}
|
||||
|
||||
op(_BINARY_OP_SUBTRACT_FLOAT, (left, right -- res, l, r)) {
|
||||
REPLACE_OPCODE_IF_EVALUATES_PURE(left, right);
|
||||
res = sym_new_type(ctx, &PyFloat_Type);
|
||||
l = left;
|
||||
r = right;
|
||||
}
|
||||
|
||||
op(_BINARY_OP_MULTIPLY_FLOAT, (left, right -- res, l, r)) {
|
||||
REPLACE_OPCODE_IF_EVALUATES_PURE(left, right);
|
||||
res = sym_new_type(ctx, &PyFloat_Type);
|
||||
l = left;
|
||||
r = right;
|
||||
|
|
@ -446,9 +446,10 @@ dummy_func(void) {
|
|||
}
|
||||
}
|
||||
|
||||
op(_COMPARE_OP_INT, (left, right -- res)) {
|
||||
REPLACE_OPCODE_IF_EVALUATES_PURE(left, right);
|
||||
op(_COMPARE_OP_INT, (left, right -- res, l, r)) {
|
||||
res = sym_new_type(ctx, &PyBool_Type);
|
||||
l = left;
|
||||
r = right;
|
||||
}
|
||||
|
||||
op(_COMPARE_OP_FLOAT, (left, right -- res)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue