gh-106797: Remove warning logs from Python/generated_cases.c.h (gh-106798)

This commit is contained in:
Dong-hee Na 2023-07-17 09:09:11 +09:00 committed by GitHub
parent 383dcbebcd
commit 48956cc60e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 20 deletions

View file

@ -839,15 +839,15 @@ _PyOpcode_num_pushed(int opcode, int oparg, bool jump) {
case PUSH_EXC_INFO: case PUSH_EXC_INFO:
return 2; return 2;
case LOAD_ATTR_METHOD_WITH_VALUES: case LOAD_ATTR_METHOD_WITH_VALUES:
return (1 ? 1 : 0) + 1; return 1 + 1;
case LOAD_ATTR_METHOD_NO_DICT: case LOAD_ATTR_METHOD_NO_DICT:
return (1 ? 1 : 0) + 1; return 1 + 1;
case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES:
return (0 ? 1 : 0) + 1; return 0 + 1;
case LOAD_ATTR_NONDESCRIPTOR_NO_DICT: case LOAD_ATTR_NONDESCRIPTOR_NO_DICT:
return (0 ? 1 : 0) + 1; return 0 + 1;
case LOAD_ATTR_METHOD_LAZY_DICT: case LOAD_ATTR_METHOD_LAZY_DICT:
return (1 ? 1 : 0) + 1; return 1 + 1;
case KW_NAMES: case KW_NAMES:
return 0; return 0;
case INSTRUMENTED_CALL: case INSTRUMENTED_CALL:

View file

@ -3360,9 +3360,9 @@
res2 = Py_NewRef(descr); res2 = Py_NewRef(descr);
assert(_PyType_HasFeature(Py_TYPE(res2), Py_TPFLAGS_METHOD_DESCRIPTOR)); assert(_PyType_HasFeature(Py_TYPE(res2), Py_TPFLAGS_METHOD_DESCRIPTOR));
res = self; res = self;
STACK_GROW((1 ? 1 : 0)); STACK_GROW(1);
stack_pointer[-1] = res; stack_pointer[-1] = res;
if (1) { stack_pointer[-(1 + (1 ? 1 : 0))] = res2; } stack_pointer[-(1 + 1)] = res2;
next_instr += 9; next_instr += 9;
DISPATCH(); DISPATCH();
} }
@ -3382,16 +3382,15 @@
assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR));
res2 = Py_NewRef(descr); res2 = Py_NewRef(descr);
res = self; res = self;
STACK_GROW((1 ? 1 : 0)); STACK_GROW(1);
stack_pointer[-1] = res; stack_pointer[-1] = res;
if (1) { stack_pointer[-(1 + (1 ? 1 : 0))] = res2; } stack_pointer[-(1 + 1)] = res2;
next_instr += 9; next_instr += 9;
DISPATCH(); DISPATCH();
} }
TARGET(LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES) { TARGET(LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES) {
PyObject *self = stack_pointer[-1]; PyObject *self = stack_pointer[-1];
PyObject *res2 = NULL;
PyObject *res; PyObject *res;
uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t type_version = read_u32(&next_instr[1].cache);
uint32_t keys_version = read_u32(&next_instr[3].cache); uint32_t keys_version = read_u32(&next_instr[3].cache);
@ -3410,16 +3409,14 @@
assert(descr != NULL); assert(descr != NULL);
Py_DECREF(self); Py_DECREF(self);
res = Py_NewRef(descr); res = Py_NewRef(descr);
STACK_GROW((0 ? 1 : 0)); STACK_GROW(0);
stack_pointer[-1] = res; stack_pointer[-1] = res;
if (0) { stack_pointer[-(1 + (0 ? 1 : 0))] = res2; }
next_instr += 9; next_instr += 9;
DISPATCH(); DISPATCH();
} }
TARGET(LOAD_ATTR_NONDESCRIPTOR_NO_DICT) { TARGET(LOAD_ATTR_NONDESCRIPTOR_NO_DICT) {
PyObject *self = stack_pointer[-1]; PyObject *self = stack_pointer[-1];
PyObject *res2 = NULL;
PyObject *res; PyObject *res;
uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t type_version = read_u32(&next_instr[1].cache);
PyObject *descr = read_obj(&next_instr[5].cache); PyObject *descr = read_obj(&next_instr[5].cache);
@ -3432,9 +3429,8 @@
assert(descr != NULL); assert(descr != NULL);
Py_DECREF(self); Py_DECREF(self);
res = Py_NewRef(descr); res = Py_NewRef(descr);
STACK_GROW((0 ? 1 : 0)); STACK_GROW(0);
stack_pointer[-1] = res; stack_pointer[-1] = res;
if (0) { stack_pointer[-(1 + (0 ? 1 : 0))] = res2; }
next_instr += 9; next_instr += 9;
DISPATCH(); DISPATCH();
} }
@ -3458,9 +3454,9 @@
assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR));
res2 = Py_NewRef(descr); res2 = Py_NewRef(descr);
res = self; res = self;
STACK_GROW((1 ? 1 : 0)); STACK_GROW(1);
stack_pointer[-1] = res; stack_pointer[-1] = res;
if (1) { stack_pointer[-(1 + (1 ? 1 : 0))] = res2; } stack_pointer[-(1 + 1)] = res2;
next_instr += 9; next_instr += 9;
DISPATCH(); DISPATCH();
} }

View file

@ -98,6 +98,8 @@ def effect_size(effect: StackEffect) -> tuple[int, str]:
assert not effect.cond, "Array effects cannot have a condition" assert not effect.cond, "Array effects cannot have a condition"
return 0, effect.size return 0, effect.size
elif effect.cond: elif effect.cond:
if effect.cond in ("0", "1"):
return 0, effect.cond
return 0, f"{maybe_parenthesize(effect.cond)} ? 1 : 0" return 0, f"{maybe_parenthesize(effect.cond)} ? 1 : 0"
else: else:
return 1, "" return 1, ""
@ -217,7 +219,7 @@ class Formatter:
self.emit(f"STACK_GROW({osym});") self.emit(f"STACK_GROW({osym});")
def declare(self, dst: StackEffect, src: StackEffect | None): def declare(self, dst: StackEffect, src: StackEffect | None):
if dst.name == UNUSED: if dst.name == UNUSED or dst.cond == "0":
return return
typ = f"{dst.type}" if dst.type else "PyObject *" typ = f"{dst.type}" if dst.type else "PyObject *"
if src: if src:
@ -241,7 +243,10 @@ class Formatter:
self.emit(f"Py_XSETREF({dst.name}, {cast}{src.name});") self.emit(f"Py_XSETREF({dst.name}, {cast}{src.name});")
else: else:
stmt = f"{dst.name} = {cast}{src.name};" stmt = f"{dst.name} = {cast}{src.name};"
if src.cond: if src.cond and src.cond != "1":
if src.cond == "0":
# It will not be executed
return
stmt = f"if ({src.cond}) {{ {stmt} }}" stmt = f"if ({src.cond}) {{ {stmt} }}"
self.emit(stmt) self.emit(stmt)
@ -1067,7 +1072,10 @@ class Analyzer:
for effect in comp.instr.output_effects: for effect in comp.instr.output_effects:
assert not effect.size, effect assert not effect.size, effect
if effect.cond: if effect.cond:
pushed_symbolic.append(maybe_parenthesize(f"{maybe_parenthesize(effect.cond)} ? 1 : 0")) if effect.cond in ("0", "1"):
pushed_symbolic.append(effect.cond)
else:
pushed_symbolic.append(maybe_parenthesize(f"{maybe_parenthesize(effect.cond)} ? 1 : 0"))
sp += 1 sp += 1
high = max(sp, high) high = max(sp, high)
if high != max(0, sp): if high != max(0, sp):