mirror of
https://github.com/python/cpython.git
synced 2025-07-18 16:55:20 +00:00
gh-92031: Deoptimize Static Code at Finalization (GH-92039)
This commit is contained in:
parent
04dc4b06a3
commit
b156578bd6
5 changed files with 225 additions and 10 deletions
|
@ -117,6 +117,7 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna
|
|||
|
||||
iobj.write("\nextern const uint8_t _PyOpcode_Caches[256];\n")
|
||||
iobj.write("\nextern const uint8_t _PyOpcode_Deopt[256];\n")
|
||||
iobj.write("\nextern const uint8_t _PyOpcode_Original[256];\n")
|
||||
iobj.write("\n#ifdef NEED_OPCODE_TABLES\n")
|
||||
write_int_array_from_ops("_PyOpcode_RelativeJump", opcode['hasjrel'], iobj)
|
||||
write_int_array_from_ops("_PyOpcode_Jump", opcode['hasjrel'] + opcode['hasjabs'], iobj)
|
||||
|
@ -137,6 +138,12 @@ def main(opcode_py, outfile='Include/opcode.h', internaloutfile='Include/interna
|
|||
for opt, deopt in sorted(deoptcodes.items()):
|
||||
iobj.write(f" [{opt}] = {deopt},\n")
|
||||
iobj.write("};\n")
|
||||
iobj.write("\nconst uint8_t _PyOpcode_Original[256] = {\n")
|
||||
for opt, deopt in sorted(deoptcodes.items()):
|
||||
if opt.startswith("EXTENDED_ARG"):
|
||||
deopt = "EXTENDED_ARG_QUICK"
|
||||
iobj.write(f" [{opt}] = {deopt},\n")
|
||||
iobj.write("};\n")
|
||||
iobj.write("#endif // NEED_OPCODE_TABLES\n")
|
||||
|
||||
fobj.write("\n")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue