mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +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++) {
|
for (v = op_array->last_var; v < ssa->vars_count; v++) {
|
||||||
|
|
||||||
op_1 = ssa->vars[v].definition;
|
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) {
|
if (remove_nops) {
|
||||||
zend_ssa_remove_nops(op_array, ssa);
|
zend_ssa_remove_nops(op_array, ssa);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue