Lines Matching refs:last_op

169 	zend_op *end, *last_op = NULL;  in zend_optimize_block()  local
294 if (last_op && last_op->opcode == ZEND_ECHO && in zend_optimize_block()
295 last_op->op1_type == IS_CONST && in zend_optimize_block()
297 Z_TYPE(ZEND_OP1_LITERAL(last_op)) != IS_DOUBLE) { in zend_optimize_block()
307 if (Z_TYPE(ZEND_OP1_LITERAL(last_op)) != IS_STRING) { in zend_optimize_block()
308 convert_to_string_safe(&ZEND_OP1_LITERAL(last_op)); in zend_optimize_block()
310 old_len = Z_STRLEN(ZEND_OP1_LITERAL(last_op)); in zend_optimize_block()
312 if (!Z_REFCOUNTED(ZEND_OP1_LITERAL(last_op))) { in zend_optimize_block()
314 memcpy(ZSTR_VAL(tmp), Z_STRVAL(ZEND_OP1_LITERAL(last_op)), old_len); in zend_optimize_block()
315 Z_STR(ZEND_OP1_LITERAL(last_op)) = tmp; in zend_optimize_block()
317 Z_STR(ZEND_OP1_LITERAL(last_op)) = zend_string_extend(Z_STR(ZEND_OP1_LITERAL(last_op)), l, 0); in zend_optimize_block()
319 Z_TYPE_INFO(ZEND_OP1_LITERAL(last_op)) = IS_STRING_EX; in zend_optimize_block()
320 …memcpy(Z_STRVAL(ZEND_OP1_LITERAL(last_op)) + old_len, Z_STRVAL(ZEND_OP1_LITERAL(opline)), Z_STRLEN… in zend_optimize_block()
321 Z_STRVAL(ZEND_OP1_LITERAL(last_op))[l] = '\0'; in zend_optimize_block()
323 … ZVAL_STR(&ZEND_OP1_LITERAL(opline), zend_new_interned_string(Z_STR(ZEND_OP1_LITERAL(last_op)))); in zend_optimize_block()
324 ZVAL_NULL(&ZEND_OP1_LITERAL(last_op)); in zend_optimize_block()
325 MAKE_NOP(last_op); in zend_optimize_block()
328 last_op = opline; in zend_optimize_block()
330 last_op = NULL; in zend_optimize_block()
333 last_op = NULL; in zend_optimize_block()
1132 zend_op *last_op; in zend_jmp_optimization() local
1138 last_op = op_array->opcodes + block->start + block->len - 1; in zend_jmp_optimization()
1139 switch (last_op->opcode) { in zend_jmp_optimization()
1153 MAKE_NOP(last_op); in zend_jmp_optimization()
1163 *last_op = *target; in zend_jmp_optimization()
1171 *last_op = *target; in zend_jmp_optimization()
1172 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1174 ZVAL_COPY(&zv, &ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1175 last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); in zend_jmp_optimization()
1189 *last_op = *target; in zend_jmp_optimization()
1190 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1192 ZVAL_COPY(&zv, &ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1193 last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv); in zend_jmp_optimization()
1241 MAKE_NOP(last_op); in zend_jmp_optimization()
1258 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1259 int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1261 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1264 literal_dtor(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1265 last_op->op1_type = IS_UNUSED; in zend_jmp_optimization()
1268 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1273 MAKE_NOP(last_op); in zend_jmp_optimization()
1285 if (last_op->op1_type == IS_CV) { in zend_jmp_optimization()
1286 last_op->opcode = ZEND_CHECK_VAR; in zend_jmp_optimization()
1287 last_op->op2.num = 0; in zend_jmp_optimization()
1288 } else if (last_op->op1_type & (IS_VAR|IS_TMP_VAR)) { in zend_jmp_optimization()
1289 last_op->opcode = ZEND_FREE; in zend_jmp_optimization()
1290 last_op->op2.num = 0; in zend_jmp_optimization()
1292 MAKE_NOP(last_op); in zend_jmp_optimization()
1300 zend_uchar same_type = last_op->op1_type; in zend_jmp_optimization()
1301 uint32_t same_var = VAR_NUM_EX(last_op->op1); in zend_jmp_optimization()
1318 } else if (target->opcode == INV_COND(last_op->opcode) && in zend_jmp_optimization()
1329 } else if (target->opcode == INV_COND_EX(last_op->opcode) && in zend_jmp_optimization()
1335 last_op->opcode += 3; in zend_jmp_optimization()
1336 COPY_NODE(last_op->result, target->result); in zend_jmp_optimization()
1341 } else if (target->opcode == last_op->opcode && in zend_jmp_optimization()
1365 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1375 if (last_op->opcode == ZEND_JMPZ || last_op->opcode == ZEND_JMPNZ) { in zend_jmp_optimization()
1402 if (last_op->opcode == ZEND_JMPZ) { in zend_jmp_optimization()
1410 last_op->opcode = ZEND_JMPZNZ; in zend_jmp_optimization()
1419 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1420 int should_jmp = zend_is_true(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1422 if (last_op->opcode == ZEND_JMPZ_EX) { in zend_jmp_optimization()
1429 last_op->opcode = ZEND_QM_ASSIGN; in zend_jmp_optimization()
1430 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1448 same_t[VAR_NUM_EX(last_op->op1)] |= last_op->op1_type; in zend_jmp_optimization()
1449 same_t[VAR_NUM_EX(last_op->result)] |= last_op->result_type; in zend_jmp_optimization()
1462 } else if (target->opcode == last_op->opcode-3 && in zend_jmp_optimization()
1471 } else if (target->opcode == INV_EX_COND(last_op->opcode) && in zend_jmp_optimization()
1480 } else if (target->opcode == INV_EX_COND_EX(last_op->opcode) && in zend_jmp_optimization()
1490 } else if (target->opcode == last_op->opcode && in zend_jmp_optimization()
1513 if (last_op->opcode == ZEND_JMPZ_EX) { in zend_jmp_optimization()
1532 if (last_op->op1_type == IS_CONST) { in zend_jmp_optimization()
1533 if (!zend_is_true(&ZEND_OP1_LITERAL(last_op))) { in zend_jmp_optimization()
1535 literal_dtor(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1536 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1537 SET_UNUSED(last_op->op1); in zend_jmp_optimization()
1538 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1543 literal_dtor(&ZEND_OP1_LITERAL(last_op)); in zend_jmp_optimization()
1544 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1545 SET_UNUSED(last_op->op1); in zend_jmp_optimization()
1546 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1554 if (!(last_op->op1_type & (IS_VAR|IS_TMP_VAR))) { in zend_jmp_optimization()
1556 last_op->opcode = ZEND_JMP; in zend_jmp_optimization()
1557 SET_UNUSED(last_op->op1); in zend_jmp_optimization()
1558 SET_UNUSED(last_op->op2); in zend_jmp_optimization()
1565 last_op->opcode = ZEND_JMPNZ; in zend_jmp_optimization()
1573 last_op->opcode = ZEND_JMPZ; in zend_jmp_optimization()
1578 if (last_op->opcode == ZEND_JMPZNZ) { in zend_jmp_optimization()
1579 zend_uchar same_type = last_op->op1_type; in zend_jmp_optimization()
1580 zend_uchar same_var = VAR_NUM_EX(last_op->op1); in zend_jmp_optimization()
1872 zend_op *last_op = op_array->opcodes + prev->start + prev->len - 1; in zend_merge_blocks() local
1873 if (prev->len != 0 && last_op->opcode == ZEND_JMP) { in zend_merge_blocks()
1874 MAKE_NOP(last_op); in zend_merge_blocks()