Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit efe6990

Browse files
committedApr 2, 2025·
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)
Please sign in to comment.

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant