Skip to content

Commit f5e2e8e

Browse files
committed
Remove (compact) unused constants after SCCP pass
1 parent f0b7bb8 commit f5e2e8e

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

ext/opcache/Optimizer/zend_optimizer.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,9 @@ static void zend_optimize(zend_op_array *op_array,
10081008
/* pass 11:
10091009
* - Compact literals table
10101010
*/
1011-
if (ZEND_OPTIMIZER_PASS_11 & ctx->optimization_level) {
1011+
if ((ZEND_OPTIMIZER_PASS_11 & ctx->optimization_level) &&
1012+
(!(ZEND_OPTIMIZER_PASS_6 & ctx->optimization_level) ||
1013+
!(ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level))) {
10121014
zend_optimizer_compact_literals(op_array, ctx);
10131015
if (ctx->debug_level & ZEND_DUMP_AFTER_PASS_11) {
10141016
zend_dump_op_array(op_array, 0, "after pass 11", NULL);
@@ -1221,6 +1223,15 @@ int zend_optimize_script(zend_script *script, zend_long optimization_level, zend
12211223
}
12221224
}
12231225

1226+
if (ZEND_OPTIMIZER_PASS_11 & optimization_level) {
1227+
for (i = 0; i < call_graph.op_arrays_count; i++) {
1228+
zend_optimizer_compact_literals(call_graph.op_arrays[i], &ctx);
1229+
if (debug_level & ZEND_DUMP_AFTER_PASS_11) {
1230+
zend_dump_op_array(call_graph.op_arrays[i], 0, "after pass 11", NULL);
1231+
}
1232+
}
1233+
}
1234+
12241235
if (ZEND_OPTIMIZER_PASS_12 & optimization_level) {
12251236
for (i = 0; i < call_graph.op_arrays_count; i++) {
12261237
zend_adjust_fcall_stack_size_graph(call_graph.op_arrays[i]);

0 commit comments

Comments
 (0)