mirror of
https://github.com/php/php-src.git
synced 2026-04-28 02:33:17 +02:00
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
This commit is contained in:
@@ -25,7 +25,6 @@
|
||||
* - constant expression evaluation
|
||||
* - optimize constant conditional JMPs
|
||||
* - pre-evaluate constant function calls
|
||||
* - eliminate FETCH $GLOBALS followed by FETCH_DIM/UNSET_DIM/ISSET_ISEMPTY_DIM
|
||||
*/
|
||||
|
||||
#include "php.h"
|
||||
@@ -531,52 +530,6 @@ constant_binary_op:
|
||||
zend_optimizer_collect_constant(ctx, &ZEND_OP1_LITERAL(opline), &ZEND_OP2_LITERAL(opline));
|
||||
}
|
||||
break;
|
||||
#if 0
|
||||
/* see ext/opcache/tests/bug78961.phpt */
|
||||
// case ZEND_FETCH_R:
|
||||
case ZEND_FETCH_W:
|
||||
// case ZEND_FETCH_RW:
|
||||
case ZEND_FETCH_IS:
|
||||
// case ZEND_FETCH_FUNC_ARG:
|
||||
case ZEND_FETCH_UNSET:
|
||||
/* convert FETCH $GLOBALS (global), FETCH_DIM $x into FETCH $x (global) */
|
||||
if ((opline->extended_value & ZEND_FETCH_GLOBAL) != 0 &&
|
||||
opline->op1_type == IS_CONST &&
|
||||
Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING &&
|
||||
zend_string_equals_literal(Z_STR(ZEND_OP1_LITERAL(opline)), "GLOBALS") &&
|
||||
((opline + 1)->opcode == opline->opcode + 1 ||
|
||||
((opline + 1)->opcode == ZEND_UNSET_DIM &&
|
||||
opline->opcode == ZEND_FETCH_UNSET) ||
|
||||
((opline + 1)->opcode == ZEND_ISSET_ISEMPTY_DIM_OBJ &&
|
||||
opline->opcode == ZEND_FETCH_IS)) &&
|
||||
(opline + 1)->op1_type == opline->result_type &&
|
||||
(opline + 1)->op1.var == opline->result.var &&
|
||||
((opline + 1)->op2_type != IS_CONST ||
|
||||
Z_TYPE(ZEND_OP2_LITERAL(opline + 1)) < IS_ARRAY)) {
|
||||
|
||||
if ((opline + 1)->opcode == ZEND_UNSET_DIM) {
|
||||
(opline + 1)->opcode = ZEND_UNSET_VAR;
|
||||
(opline + 1)->extended_value = ZEND_FETCH_GLOBAL;
|
||||
} else if ((opline + 1)->opcode == ZEND_ISSET_ISEMPTY_DIM_OBJ) {
|
||||
(opline + 1)->opcode = ZEND_ISSET_ISEMPTY_VAR;
|
||||
(opline + 1)->extended_value |= ZEND_FETCH_GLOBAL;
|
||||
} else {
|
||||
(opline + 1)->opcode = opline->opcode;
|
||||
(opline + 1)->extended_value = ZEND_FETCH_GLOBAL;
|
||||
}
|
||||
(opline + 1)->op1_type = (opline + 1)->op2_type;
|
||||
(opline + 1)->op1 = (opline + 1)->op2;
|
||||
if ((opline + 1)->op1_type == IS_CONST &&
|
||||
Z_TYPE(ZEND_OP1_LITERAL(opline + 1)) != IS_STRING) {
|
||||
|
||||
convert_to_string(&ZEND_OP1_LITERAL(opline + 1));
|
||||
zend_string_hash_val(Z_STR(ZEND_OP1_LITERAL(opline + 1)));
|
||||
}
|
||||
SET_UNUSED((opline + 1)->op2);
|
||||
MAKE_NOP(opline);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ZEND_JMPZ_EX:
|
||||
case ZEND_JMPNZ_EX:
|
||||
|
||||
Reference in New Issue
Block a user