GH-129709: Clean up tier two (GH-129710)

This commit is contained in:
Brandt Bucher 2025-02-07 09:52:49 -08:00 committed by GitHub
parent fbaa6c8ff0
commit 70e387c990
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 97 additions and 348 deletions

View file

@ -645,16 +645,7 @@
}
case _BINARY_SUBSCR_INIT_CALL: {
JitOptSymbol *getitem;
JitOptSymbol *sub;
JitOptSymbol *container;
_Py_UOpsAbstractFrame *new_frame;
getitem = stack_pointer[-1];
sub = stack_pointer[-2];
container = stack_pointer[-3];
(void)container;
(void)sub;
(void)getitem;
new_frame = NULL;
ctx->done = true;
stack_pointer[-3] = (JitOptSymbol *)new_frame;
@ -816,12 +807,9 @@
}
case _UNPACK_SEQUENCE: {
JitOptSymbol *seq;
JitOptSymbol **values;
seq = stack_pointer[-1];
values = &stack_pointer[-1];
/* This has to be done manually */
(void)seq;
for (int i = 0; i < oparg; i++) {
values[i] = sym_new_unknown(ctx);
}
@ -869,12 +857,9 @@
}
case _UNPACK_EX: {
JitOptSymbol *seq;
JitOptSymbol **values;
seq = stack_pointer[-1];
values = &stack_pointer[-1];
/* This has to be done manually */
(void)seq;
int totalargs = (oparg & 0xFF) + (oparg >> 8) + 1;
for (int i = 0; i < totalargs; i++) {
values[i] = sym_new_unknown(ctx);
@ -1178,13 +1163,10 @@
}
case _LOAD_ATTR_INSTANCE_VALUE: {
JitOptSymbol *owner;
JitOptSymbol *attr;
owner = stack_pointer[-1];
uint16_t offset = (uint16_t)this_instr->operand0;
attr = sym_new_not_null(ctx);
(void)offset;
(void)owner;
stack_pointer[-1] = attr;
break;
}
@ -1258,11 +1240,8 @@
}
case _CHECK_ATTR_WITH_HINT: {
JitOptSymbol *owner;
JitOptSymbol *dict;
owner = stack_pointer[-1];
dict = sym_new_not_null(ctx);
(void)owner;
stack_pointer[0] = dict;
stack_pointer += 1;
assert(WITHIN_STACK_BOUNDS());
@ -1270,16 +1249,10 @@
}
case _LOAD_ATTR_WITH_HINT: {
JitOptSymbol *dict;
JitOptSymbol *owner;
JitOptSymbol *attr;
dict = stack_pointer[-1];
owner = stack_pointer[-2];
uint16_t hint = (uint16_t)this_instr->operand0;
attr = sym_new_not_null(ctx);
(void)hint;
(void)owner;
(void)dict;
stack_pointer[-2] = attr;
stack_pointer += -1;
assert(WITHIN_STACK_BOUNDS());
@ -1287,13 +1260,10 @@
}
case _LOAD_ATTR_SLOT: {
JitOptSymbol *owner;
JitOptSymbol *attr;
owner = stack_pointer[-1];
uint16_t index = (uint16_t)this_instr->operand0;
attr = sym_new_not_null(ctx);
(void)index;
(void)owner;
stack_pointer[-1] = attr;
break;
}
@ -1303,24 +1273,18 @@
}
case _LOAD_ATTR_CLASS: {
JitOptSymbol *owner;
JitOptSymbol *attr;
owner = stack_pointer[-1];
PyObject *descr = (PyObject *)this_instr->operand0;
attr = sym_new_not_null(ctx);
(void)descr;
(void)owner;
stack_pointer[-1] = attr;
break;
}
case _LOAD_ATTR_PROPERTY_FRAME: {
JitOptSymbol *owner;
_Py_UOpsAbstractFrame *new_frame;
owner = stack_pointer[-1];
PyObject *fget = (PyObject *)this_instr->operand0;
(void)fget;
(void)owner;
new_frame = NULL;
ctx->done = true;
stack_pointer[-1] = (JitOptSymbol *)new_frame;
@ -1352,13 +1316,7 @@
}
case _COMPARE_OP: {
JitOptSymbol *right;
JitOptSymbol *left;
JitOptSymbol *res;
right = stack_pointer[-1];
left = stack_pointer[-2];
(void)left;
(void)right;
if (oparg & 16) {
res = sym_new_type(ctx, &PyBool_Type);
}
@ -1376,13 +1334,7 @@
}
case _COMPARE_OP_FLOAT: {
JitOptSymbol *right;
JitOptSymbol *left;
JitOptSymbol *res;
right = stack_pointer[-1];
left = stack_pointer[-2];
(void)left;
(void)right;
res = sym_new_type(ctx, &PyBool_Type);
stack_pointer[-2] = res;
stack_pointer += -1;
@ -1391,13 +1343,7 @@
}
case _COMPARE_OP_INT: {
JitOptSymbol *right;
JitOptSymbol *left;
JitOptSymbol *res;
right = stack_pointer[-1];
left = stack_pointer[-2];
(void)left;
(void)right;
res = sym_new_type(ctx, &PyBool_Type);
stack_pointer[-2] = res;
stack_pointer += -1;
@ -1406,13 +1352,7 @@
}
case _COMPARE_OP_STR: {
JitOptSymbol *right;
JitOptSymbol *left;
JitOptSymbol *res;
right = stack_pointer[-1];
left = stack_pointer[-2];
(void)left;
(void)right;
res = sym_new_type(ctx, &PyBool_Type);
stack_pointer[-2] = res;
stack_pointer += -1;
@ -1421,13 +1361,7 @@
}
case _IS_OP: {
JitOptSymbol *right;
JitOptSymbol *left;
JitOptSymbol *res;
right = stack_pointer[-1];
left = stack_pointer[-2];
(void)left;
(void)right;
res = sym_new_type(ctx, &PyBool_Type);
stack_pointer[-2] = res;
stack_pointer += -1;
@ -1436,13 +1370,7 @@
}
case _CONTAINS_OP: {
JitOptSymbol *right;
JitOptSymbol *left;
JitOptSymbol *res;
right = stack_pointer[-1];
left = stack_pointer[-2];
(void)left;
(void)right;
res = sym_new_type(ctx, &PyBool_Type);
stack_pointer[-2] = res;
stack_pointer += -1;
@ -1635,11 +1563,8 @@
}
case _ITER_NEXT_RANGE: {
JitOptSymbol *iter;
JitOptSymbol *next;
iter = stack_pointer[-1];
next = sym_new_type(ctx, &PyLong_Type);
(void)iter;
stack_pointer[0] = next;
stack_pointer += 1;
assert(WITHIN_STACK_BOUNDS());
@ -1653,11 +1578,8 @@
}
case _LOAD_SPECIAL: {
JitOptSymbol *owner;
JitOptSymbol *attr;
JitOptSymbol *self_or_null;
owner = stack_pointer[-1];
(void)owner;
attr = sym_new_not_null(ctx);
self_or_null = sym_new_unknown(ctx);
stack_pointer[-1] = attr;
@ -1764,16 +1686,10 @@
case _MAYBE_EXPAND_METHOD: {
JitOptSymbol **args;
JitOptSymbol *self_or_null;
JitOptSymbol *callable;
JitOptSymbol *func;
JitOptSymbol *maybe_self;
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
args = &stack_pointer[-oparg];
(void)callable;
(void)self_or_null;
(void)args;
func = sym_new_not_null(ctx);
maybe_self = sym_new_not_null(ctx);
@ -1787,17 +1703,11 @@
/* _MONITOR_CALL is not a viable micro-op for tier 2 */
case _PY_FRAME_GENERAL: {
JitOptSymbol *self_or_null;
JitOptSymbol *callable;
_Py_UOpsAbstractFrame *new_frame;
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
stack_pointer += -2 - oparg;
assert(WITHIN_STACK_BOUNDS());
(void)(self_or_null);
(void)(callable);
PyCodeObject *co = NULL;
assert((this_instr + 2)->opcode == _PUSH_FRAME);
stack_pointer += -2 - oparg;
assert(WITHIN_STACK_BOUNDS());
co = get_code_with_logging((this_instr + 2));
if (co == NULL) {
ctx->done = true;
@ -1811,12 +1721,9 @@
}
case _CHECK_FUNCTION_VERSION: {
JitOptSymbol *self_or_null;
JitOptSymbol *callable;
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
uint32_t func_version = (uint32_t)this_instr->operand0;
(void)self_or_null;
if (sym_is_const(callable) && sym_matches_type(callable, &PyFunction_Type)) {
assert(PyFunction_Check(sym_get_const(callable)));
REPLACE_OP(this_instr, _CHECK_FUNCTION_VERSION_INLINE, 0, func_version);
@ -1866,7 +1773,6 @@
JitOptSymbol **callable;
self_or_null = &stack_pointer[-1 - oparg];
callable = &stack_pointer[-2 - oparg];
(void)callable;
callable[0] = sym_new_not_null(ctx);
self_or_null[0] = sym_new_not_null(ctx);
break;
@ -1896,7 +1802,6 @@
}
}
}
(void)self_or_null;
break;
}
@ -1909,13 +1814,10 @@
case _INIT_CALL_PY_EXACT_ARGS: {
JitOptSymbol **args;
JitOptSymbol *self_or_null;
JitOptSymbol *callable;
_Py_UOpsAbstractFrame *new_frame;
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
int argcount = oparg;
(void)callable;
PyCodeObject *co = NULL;
assert((this_instr + 2)->opcode == _PUSH_FRAME);
stack_pointer += -2 - oparg;
@ -2010,18 +1912,12 @@
case _CHECK_AND_ALLOCATE_OBJECT: {
JitOptSymbol **args;
JitOptSymbol *null;
JitOptSymbol *callable;
JitOptSymbol *self;
JitOptSymbol *init;
args = &stack_pointer[-oparg];
null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
args = &stack_pointer[-oparg];
uint32_t type_version = (uint32_t)this_instr->operand0;
(void)type_version;
(void)callable;
(void)null;
(void)args;
self = sym_new_not_null(ctx);
init = sym_new_not_null(ctx);
@ -2031,16 +1927,7 @@
}
case _CREATE_INIT_FRAME: {
JitOptSymbol **args;
JitOptSymbol *init;
JitOptSymbol *self;
_Py_UOpsAbstractFrame *init_frame;
args = &stack_pointer[-oparg];
init = stack_pointer[-1 - oparg];
self = stack_pointer[-2 - oparg];
(void)self;
(void)init;
(void)args;
init_frame = NULL;
ctx->done = true;
stack_pointer[-2 - oparg] = (JitOptSymbol *)init_frame;
@ -2174,19 +2061,7 @@
/* _DO_CALL_KW is not a viable micro-op for tier 2 */
case _PY_FRAME_KW: {
JitOptSymbol *kwnames;
JitOptSymbol **args;
JitOptSymbol *self_or_null;
JitOptSymbol *callable;
_Py_UOpsAbstractFrame *new_frame;
kwnames = stack_pointer[-1];
args = &stack_pointer[-1 - oparg];
self_or_null = stack_pointer[-2 - oparg];
callable = stack_pointer[-3 - oparg];
(void)callable;
(void)self_or_null;
(void)args;
(void)kwnames;
new_frame = NULL;
ctx->done = true;
stack_pointer[-3 - oparg] = (JitOptSymbol *)new_frame;