| #ifndef Py_INTERNAL_CFG_H | |
| #define Py_INTERNAL_CFG_H | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #ifndef Py_BUILD_CORE | |
| # error "this header requires Py_BUILD_CORE define" | |
| #endif | |
| #include "pycore_compile.h" | |
| #include "pycore_instruction_sequence.h" | |
| #include "pycore_opcode_utils.h" | |
| struct _PyCfgBuilder; | |
| int _PyCfgBuilder_UseLabel(struct _PyCfgBuilder *g, _PyJumpTargetLabel lbl); | |
| int _PyCfgBuilder_Addop(struct _PyCfgBuilder *g, int opcode, int oparg, _Py_SourceLocation loc); | |
| struct _PyCfgBuilder* _PyCfgBuilder_New(void); | |
| void _PyCfgBuilder_Free(struct _PyCfgBuilder *g); | |
| int _PyCfgBuilder_CheckSize(struct _PyCfgBuilder* g); | |
| int _PyCfg_OptimizeCodeUnit(struct _PyCfgBuilder *g, PyObject *consts, PyObject *const_cache, | |
| int nlocals, int nparams, int firstlineno); | |
| struct _PyCfgBuilder* _PyCfg_FromInstructionSequence(_PyInstructionSequence *seq); | |
| int _PyCfg_ToInstructionSequence(struct _PyCfgBuilder *g, _PyInstructionSequence *seq); | |
| int _PyCfg_OptimizedCfgToInstructionSequence(struct _PyCfgBuilder *g, _PyCompile_CodeUnitMetadata *umd, | |
| int *stackdepth, int *nlocalsplus, | |
| _PyInstructionSequence *seq); | |
| PyCodeObject * | |
| _PyAssemble_MakeCodeObject(_PyCompile_CodeUnitMetadata *u, PyObject *const_cache, | |
| PyObject *consts, int maxdepth, _PyInstructionSequence *instrs, | |
| int nlocalsplus, int code_flags, PyObject *filename); | |
| // Export for '_testinternalcapi' shared extension | |
| PyAPI_FUNC(PyObject*) _PyCompile_OptimizeCfg( | |
| PyObject *instructions, | |
| PyObject *consts, | |
| int nlocals); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* !Py_INTERNAL_CFG_H */ |