mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
gh-87092: move assembler related code from compile.c to assemble.c (#103277)
This commit is contained in:
parent
78b763f630
commit
33822d037a
10 changed files with 853 additions and 751 deletions
|
@ -1978,28 +1978,6 @@ push_cold_blocks_to_end(cfg_builder *g, int code_flags) {
|
|||
return SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
_PyCfg_OptimizeCodeUnit(cfg_builder *g, PyObject *consts, PyObject *const_cache,
|
||||
int code_flags, int nlocals, int nparams)
|
||||
{
|
||||
assert(cfg_builder_check(g));
|
||||
/** Preprocessing **/
|
||||
/* Map labels to targets and mark exception handlers */
|
||||
RETURN_IF_ERROR(translate_jump_labels_to_targets(g->g_entryblock));
|
||||
RETURN_IF_ERROR(mark_except_handlers(g->g_entryblock));
|
||||
RETURN_IF_ERROR(label_exception_targets(g->g_entryblock));
|
||||
|
||||
/** Optimization **/
|
||||
RETURN_IF_ERROR(optimize_cfg(g, consts, const_cache));
|
||||
RETURN_IF_ERROR(remove_unused_consts(g->g_entryblock, consts));
|
||||
RETURN_IF_ERROR(
|
||||
add_checks_for_loads_of_uninitialized_variables(
|
||||
g->g_entryblock, nlocals, nparams));
|
||||
|
||||
RETURN_IF_ERROR(push_cold_blocks_to_end(g, code_flags));
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
void
|
||||
_PyCfg_ConvertExceptionHandlersToNops(basicblock *entryblock)
|
||||
{
|
||||
|
@ -2149,8 +2127,8 @@ guarantee_lineno_for_exits(basicblock *entryblock, int firstlineno) {
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
_PyCfg_ResolveLineNumbers(cfg_builder *g, int firstlineno)
|
||||
static int
|
||||
resolve_line_numbers(cfg_builder *g, int firstlineno)
|
||||
{
|
||||
RETURN_IF_ERROR(duplicate_exits_without_lineno(g));
|
||||
propagate_line_numbers(g->g_entryblock);
|
||||
|
@ -2158,3 +2136,25 @@ _PyCfg_ResolveLineNumbers(cfg_builder *g, int firstlineno)
|
|||
return SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
_PyCfg_OptimizeCodeUnit(cfg_builder *g, PyObject *consts, PyObject *const_cache,
|
||||
int code_flags, int nlocals, int nparams, int firstlineno)
|
||||
{
|
||||
assert(cfg_builder_check(g));
|
||||
/** Preprocessing **/
|
||||
/* Map labels to targets and mark exception handlers */
|
||||
RETURN_IF_ERROR(translate_jump_labels_to_targets(g->g_entryblock));
|
||||
RETURN_IF_ERROR(mark_except_handlers(g->g_entryblock));
|
||||
RETURN_IF_ERROR(label_exception_targets(g->g_entryblock));
|
||||
|
||||
/** Optimization **/
|
||||
RETURN_IF_ERROR(optimize_cfg(g, consts, const_cache));
|
||||
RETURN_IF_ERROR(remove_unused_consts(g->g_entryblock, consts));
|
||||
RETURN_IF_ERROR(
|
||||
add_checks_for_loads_of_uninitialized_variables(
|
||||
g->g_entryblock, nlocals, nparams));
|
||||
|
||||
RETURN_IF_ERROR(push_cold_blocks_to_end(g, code_flags));
|
||||
RETURN_IF_ERROR(resolve_line_numbers(g, firstlineno));
|
||||
return SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue