mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Perform DCE pass before other DFA optimisations, to properly reconstruct "no value" use-def chains.
This commit is contained in:
parent
a651564f29
commit
a247cee80b
1 changed files with 9 additions and 9 deletions
|
@ -470,6 +470,15 @@ void zend_dfa_optimize_op_array(zend_op_array *op_array, zend_optimizer_ctx *ctx
|
|||
}
|
||||
}
|
||||
|
||||
if (ZEND_OPTIMIZER_PASS_14 & ctx->optimization_level) {
|
||||
if (dce_optimize_op_array(op_array, ssa, 0)) {
|
||||
remove_nops = 1;
|
||||
}
|
||||
if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_14) {
|
||||
zend_dump_op_array(op_array, ZEND_DUMP_SSA, "after dce pass", ssa);
|
||||
}
|
||||
}
|
||||
|
||||
for (v = op_array->last_var; v < ssa->vars_count; v++) {
|
||||
|
||||
op_1 = ssa->vars[v].definition;
|
||||
|
@ -719,15 +728,6 @@ void zend_dfa_optimize_op_array(zend_op_array *op_array, zend_optimizer_ctx *ctx
|
|||
}
|
||||
}
|
||||
|
||||
if (ZEND_OPTIMIZER_PASS_14 & ctx->optimization_level) {
|
||||
if (dce_optimize_op_array(op_array, ssa, 0)) {
|
||||
remove_nops = 1;
|
||||
}
|
||||
if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_14) {
|
||||
zend_dump_op_array(op_array, ZEND_DUMP_SSA, "after dce pass", ssa);
|
||||
}
|
||||
}
|
||||
|
||||
if (remove_nops) {
|
||||
zend_ssa_remove_nops(op_array, ssa);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue