mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
gh-105481: remove regen-opcode. Generated _PyOpcode_Caches in regen-cases. (#108367)
This commit is contained in:
parent
422f81b5d2
commit
72119d16a5
19 changed files with 78 additions and 176 deletions
|
@ -5,48 +5,40 @@ operate on bytecodes (e.g. peephole optimizers).
|
|||
"""
|
||||
|
||||
|
||||
# Note that __all__ is further extended below
|
||||
__all__ = ["cmp_op", "stack_effect", "hascompare"]
|
||||
__all__ = ["cmp_op", "stack_effect", "hascompare", "opname", "opmap",
|
||||
"HAVE_ARGUMENT", "EXTENDED_ARG", "hasarg", "hasconst", "hasname",
|
||||
"hasjump", "hasjrel", "hasjabs", "hasfree", "haslocal", "hasexc"]
|
||||
|
||||
import _opcode
|
||||
from _opcode import stack_effect
|
||||
|
||||
import sys
|
||||
# The build uses older versions of Python which do not have _opcode_metadata
|
||||
if sys.version_info[:2] >= (3, 13):
|
||||
from _opcode_metadata import _specializations, _specialized_opmap
|
||||
from _opcode_metadata import opmap, HAVE_ARGUMENT, MIN_INSTRUMENTED_OPCODE
|
||||
EXTENDED_ARG = opmap['EXTENDED_ARG']
|
||||
from _opcode_metadata import (_specializations, _specialized_opmap, opmap,
|
||||
HAVE_ARGUMENT, MIN_INSTRUMENTED_OPCODE)
|
||||
EXTENDED_ARG = opmap['EXTENDED_ARG']
|
||||
|
||||
opname = ['<%r>' % (op,) for op in range(max(opmap.values()) + 1)]
|
||||
for op, i in opmap.items():
|
||||
opname[i] = op
|
||||
|
||||
__all__.extend(["opname", "opmap", "HAVE_ARGUMENT", "EXTENDED_ARG"])
|
||||
opname = ['<%r>' % (op,) for op in range(max(opmap.values()) + 1)]
|
||||
for op, i in opmap.items():
|
||||
opname[i] = op
|
||||
|
||||
cmp_op = ('<', '<=', '==', '!=', '>', '>=')
|
||||
|
||||
# The build uses older versions of Python which do not have _opcode.has_* functions
|
||||
if sys.version_info[:2] >= (3, 13):
|
||||
# These lists are documented as part of the dis module's API
|
||||
hasarg = [op for op in opmap.values() if _opcode.has_arg(op)]
|
||||
hasconst = [op for op in opmap.values() if _opcode.has_const(op)]
|
||||
hasname = [op for op in opmap.values() if _opcode.has_name(op)]
|
||||
hasjump = [op for op in opmap.values() if _opcode.has_jump(op)]
|
||||
hasjrel = hasjump # for backward compatibility
|
||||
hasjabs = []
|
||||
hasfree = [op for op in opmap.values() if _opcode.has_free(op)]
|
||||
haslocal = [op for op in opmap.values() if _opcode.has_local(op)]
|
||||
hasexc = [op for op in opmap.values() if _opcode.has_exc(op)]
|
||||
# These lists are documented as part of the dis module's API
|
||||
hasarg = [op for op in opmap.values() if _opcode.has_arg(op)]
|
||||
hasconst = [op for op in opmap.values() if _opcode.has_const(op)]
|
||||
hasname = [op for op in opmap.values() if _opcode.has_name(op)]
|
||||
hasjump = [op for op in opmap.values() if _opcode.has_jump(op)]
|
||||
hasjrel = hasjump # for backward compatibility
|
||||
hasjabs = []
|
||||
hasfree = [op for op in opmap.values() if _opcode.has_free(op)]
|
||||
haslocal = [op for op in opmap.values() if _opcode.has_local(op)]
|
||||
hasexc = [op for op in opmap.values() if _opcode.has_exc(op)]
|
||||
|
||||
__all__.extend(["hasarg", "hasconst", "hasname", "hasjump", "hasjrel",
|
||||
"hasjabs", "hasfree", "haslocal", "hasexc"])
|
||||
|
||||
_intrinsic_1_descs = _opcode.get_intrinsic1_descs()
|
||||
_intrinsic_2_descs = _opcode.get_intrinsic2_descs()
|
||||
_nb_ops = _opcode.get_nb_ops()
|
||||
_intrinsic_1_descs = _opcode.get_intrinsic1_descs()
|
||||
_intrinsic_2_descs = _opcode.get_intrinsic2_descs()
|
||||
_nb_ops = _opcode.get_nb_ops()
|
||||
|
||||
hascompare = [opmap["COMPARE_OP"]]
|
||||
hascompare = [opmap["COMPARE_OP"]]
|
||||
|
||||
_cache_format = {
|
||||
"LOAD_GLOBAL": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue