From: Dmitry Stogov Date: Tue, 17 Nov 2015 08:24:16 +0000 (+0300) Subject: cleanup X-Git-Tag: php-7.1.0alpha1~737 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7de190898d12ffa3883b345b78a803d572205d1a;p=php cleanup --- diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index 931f780fdc..8627fa716e 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -924,16 +924,12 @@ static void zend_optimize_block(zend_code_block *block, zend_op_array *op_array, if ((opline->opcode == ZEND_DIV || opline->opcode == ZEND_MOD) && zval_get_long(&ZEND_OP2_LITERAL(opline)) == 0) { - if (RESULT_USED(opline)) { - SET_VAR_SOURCE(opline); - } + SET_VAR_SOURCE(opline); opline++; continue; } else if ((opline->opcode == ZEND_SL || opline->opcode == ZEND_SR) && zval_get_long(&ZEND_OP2_LITERAL(opline)) < 0) { - if (RESULT_USED(opline)) { - SET_VAR_SOURCE(opline); - } + SET_VAR_SOURCE(opline); opline++; continue; } @@ -1057,7 +1053,7 @@ static void zend_optimize_block(zend_code_block *block, zend_op_array *op_array, MAKE_NOP(opline); } /* get variable source */ - if (RESULT_USED(opline)) { + if (opline->result_type == IS_VAR || opline->result_type == IS_TMP_VAR) { SET_VAR_SOURCE(opline); } if (opline->opcode != ZEND_NOP) { diff --git a/ext/opcache/Optimizer/pass3.c b/ext/opcache/Optimizer/pass3.c index 0e6feea492..6aeaf8310b 100644 --- a/ext/opcache/Optimizer/pass3.c +++ b/ext/opcache/Optimizer/pass3.c @@ -93,7 +93,7 @@ void zend_optimizer_pass3(zend_op_array *op_array) break; } - if ((ZEND_OP2_TYPE(opline) == IS_VAR || ZEND_OP2_TYPE(opline) == IS_CV) + if ((ZEND_OP2_TYPE(opline) & (IS_VAR | IS_CV)) && ZEND_OP2(opline).var == ZEND_OP1(next_opline).var && (opline->opcode == ZEND_ADD || opline->opcode == ZEND_MUL || @@ -112,7 +112,7 @@ void zend_optimizer_pass3(zend_op_array *op_array) COPY_NODE(opline->op2, tmp); } } - if ((ZEND_OP1_TYPE(opline) == IS_VAR || ZEND_OP1_TYPE(opline) == IS_CV) + if ((ZEND_OP1_TYPE(opline) & (IS_VAR | IS_CV)) && ZEND_OP1(opline).var == ZEND_OP1(next_opline).var && ZEND_OP1_TYPE(opline) == ZEND_OP1_TYPE(next_opline)) { switch (opline->opcode) { diff --git a/ext/opcache/Optimizer/zend_optimizer_internal.h b/ext/opcache/Optimizer/zend_optimizer_internal.h index 414bc0a515..60de459faa 100644 --- a/ext/opcache/Optimizer/zend_optimizer_internal.h +++ b/ext/opcache/Optimizer/zend_optimizer_internal.h @@ -41,22 +41,8 @@ #define INV_COND_EX(op) ((op) == ZEND_JMPZ ? ZEND_JMPNZ_EX : ZEND_JMPZ_EX) #define INV_EX_COND_EX(op) ((op) == ZEND_JMPZ_EX ? ZEND_JMPNZ_EX : ZEND_JMPZ_EX) -#undef MAKE_NOP - -#define MAKE_NOP(opline) do { \ - (opline)->op1.num = 0; \ - (opline)->op2.num = 0; \ - (opline)->result.num = 0; \ - (opline)->opcode = ZEND_NOP; \ - (opline)->op1_type = IS_UNUSED; \ - (opline)->op2_type = IS_UNUSED; \ - (opline)->result_type = IS_UNUSED; \ - zend_vm_set_opcode_handler(opline); \ -} while (0) - -#define RESULT_USED(op) (((op->result_type & IS_VAR) && !(op->result_type & EXT_TYPE_UNUSED)) || op->result_type == IS_TMP_VAR) #define RESULT_UNUSED(op) ((op->result_type & EXT_TYPE_UNUSED) != 0) -#define SAME_VAR(op1, op2) ((((op1 ## _type & IS_VAR) && (op2 ## _type & IS_VAR)) || (op1 ## _type == IS_TMP_VAR && op2 ## _type == IS_TMP_VAR)) && op1.var == op2.var) +#define SAME_VAR(op1, op2) (op1 ## _type == op2 ## _type && op1.var == op2.var) typedef struct _zend_optimizer_ctx { zend_arena *arena;