8000 Add extra assertions on number of opcodes emitted · python/cpython@efe6990 · GitHub
[go: up one dir, main page]

Skip to content

Commit efe6990

Browse files
committed
Add extra assertions on number of opcodes emitted
1 parent e37182c commit efe6990

File tree

2 files changed

+38
-45
lines changed

2 files changed

+38
-45
lines changed

Include/internal/pycore_opcode_metadata.h

Lines changed: 32 additions & 42 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tools/cases_generator/opcode_metadata_generator.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,15 @@ def generate_deopt_table(analysis: Analysis, out: CWriter) -> None:
157157
if inst.family is not None:
158158
deopt = inst.family.name
159159
deopts.append((inst.name, deopt))
160-
for name, deopt in sorted(deopts):
161-
out.emit(f"[{name}] = {deopt},\n")
162160
defined = set(analysis.opmap.values())
163161
for i in range(256):
164162
if i not in defined:
165-
out.emit(f"[{i}] = {i},\n")
163+
deopts.append((f'{i}', f'{i}'))
164+
165+
assert len(deopts) == 256
166+
assert len(set(x[0] for x in deopts)) == 256
167+
for name, deopt in sorted(deopts):
168+
out.emit(f"[{name}] = {deopt},\n")
166169
out.emit("};\n\n")
167170
out.emit("#endif // NEED_OPCODE_METADATA\n\n")
168171

0 commit comments

Comments
 (0)
0