Skip to content

Commit 1845b71

Browse files
committed
Remove commented code in pass1
This has been disabled for a long time, and the whole optimization is no longer relevant given changes in PHP 8.1
1 parent 0e1c724 commit 1845b71

File tree

1 file changed

+0
-47
lines changed

1 file changed

+0
-47
lines changed

Zend/Optimizer/pass1.c

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
* - constant expression evaluation
2626
* - optimize constant conditional JMPs
2727
* - pre-evaluate constant function calls
28-
* - eliminate FETCH $GLOBALS followed by FETCH_DIM/UNSET_DIM/ISSET_ISEMPTY_DIM
2928
*/
3029

3130
#include "php.h"
@@ -531,52 +530,6 @@ void zend_optimizer_pass1(zend_op_array *op_array, zend_optimizer_ctx *ctx)
531530
zend_optimizer_collect_constant(ctx, &ZEND_OP1_LITERAL(opline), &ZEND_OP2_LITERAL(opline));
532531
}
533532
break;
534-
#if 0
535-
/* see ext/opcache/tests/bug78961.phpt */
536-
// case ZEND_FETCH_R:
537-
case ZEND_FETCH_W:
538-
// case ZEND_FETCH_RW:
539-
case ZEND_FETCH_IS:
540-
// case ZEND_FETCH_FUNC_ARG:
541-
case ZEND_FETCH_UNSET:
542-
/* convert FETCH $GLOBALS (global), FETCH_DIM $x into FETCH $x (global) */
543-
if ((opline->extended_value & ZEND_FETCH_GLOBAL) != 0 &&
544-
opline->op1_type == IS_CONST &&
545-
Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING &&
546-
zend_string_equals_literal(Z_STR(ZEND_OP1_LITERAL(opline)), "GLOBALS") &&
547-
((opline + 1)->opcode == opline->opcode + 1 ||
548-
((opline + 1)->opcode == ZEND_UNSET_DIM &&
549-
opline->opcode == ZEND_FETCH_UNSET) ||
550-
((opline + 1)->opcode == ZEND_ISSET_ISEMPTY_DIM_OBJ &&
551-
opline->opcode == ZEND_FETCH_IS)) &&
552-
(opline + 1)->op1_type == opline->result_type &&
553-
(opline + 1)->op1.var == opline->result.var &&
554-
((opline + 1)->op2_type != IS_CONST ||
555-
Z_TYPE(ZEND_OP2_LITERAL(opline + 1)) < IS_ARRAY)) {
556-
557-
if ((opline + 1)->opcode == ZEND_UNSET_DIM) {
558-
(opline + 1)->opcode = ZEND_UNSET_VAR;
559-
(opline + 1)->extended_value = ZEND_FETCH_GLOBAL;
560-
} else if ((opline + 1)->opcode == ZEND_ISSET_ISEMPTY_DIM_OBJ) {
561-
(opline + 1)->opcode = ZEND_ISSET_ISEMPTY_VAR;
562-
(opline + 1)->extended_value |= ZEND_FETCH_GLOBAL;
563-
} else {
564-
(opline + 1)->opcode = opline->opcode;
565-
(opline + 1)->extended_value = ZEND_FETCH_GLOBAL;
566-
}
567-
(opline + 1)->op1_type = (opline + 1)->op2_type;
568-
(opline + 1)->op1 = (opline + 1)->op2;
569-
if ((opline + 1)->op1_type == IS_CONST &&
570-
Z_TYPE(ZEND_OP1_LITERAL(opline + 1)) != IS_STRING) {
571-
572-
convert_to_string(&ZEND_OP1_LITERAL(opline + 1));
573-
zend_string_hash_val(Z_STR(ZEND_OP1_LITERAL(opline + 1)));
574-
}
575-
SET_UNUSED((opline + 1)->op2);
576-
MAKE_NOP(opline);
577-
}
578-
break;
579-
#endif
580533

581534
case ZEND_JMPZ_EX:
582535
case ZEND_JMPNZ_EX:

0 commit comments

Comments
 (0)