Lines Matching refs:opline

174 …ed_tmp_var(const zend_op_array *op_array, uint32_t build_flags, zend_op *opline, uint32_t var_num,…  in find_adjusted_tmp_var()  argument
176 zend_op *op = opline; in find_adjusted_tmp_var()
246 zend_op *opline = op_array->opcodes + blocks[j].start + blocks[j].len - 1; in place_essa_pis() local
256 switch (opline->opcode) { in place_essa_pis()
269 if (opline->op1_type == IS_TMP_VAR && in place_essa_pis()
270 ((opline-1)->opcode == ZEND_IS_EQUAL || in place_essa_pis()
271 (opline-1)->opcode == ZEND_IS_NOT_EQUAL || in place_essa_pis()
272 (opline-1)->opcode == ZEND_IS_SMALLER || in place_essa_pis()
273 (opline-1)->opcode == ZEND_IS_SMALLER_OR_EQUAL) && in place_essa_pis()
274 opline->op1.var == (opline-1)->result.var) { in place_essa_pis()
281 if ((opline-1)->op1_type == IS_CV) { in place_essa_pis()
282 var1 = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
283 } else if ((opline-1)->op1_type == IS_TMP_VAR) { in place_essa_pis()
285 op_array, build_flags, opline, (opline-1)->op1.var, &val2); in place_essa_pis()
288 if ((opline-1)->op2_type == IS_CV) { in place_essa_pis()
289 var2 = EX_VAR_TO_NUM((opline-1)->op2.var); in place_essa_pis()
290 } else if ((opline-1)->op2_type == IS_TMP_VAR) { in place_essa_pis()
292 op_array, build_flags, opline, (opline-1)->op2.var, &val1); in place_essa_pis()
306 if ((opline-1)->op2_type == IS_CONST) { in place_essa_pis()
307 zval *zv = CRT_CONSTANT((opline-1)->op2); in place_essa_pis()
328 if ((opline-1)->op1_type == IS_CONST) { in place_essa_pis()
329 zval *zv = CRT_CONSTANT((opline-1)->op1); in place_essa_pis()
331 add_val1 = Z_LVAL_P(CRT_CONSTANT((opline-1)->op1)); in place_essa_pis()
350 if ((opline-1)->opcode == ZEND_IS_EQUAL) { in place_essa_pis()
357 } else if ((opline-1)->opcode == ZEND_IS_NOT_EQUAL) { in place_essa_pis()
364 } else if ((opline-1)->opcode == ZEND_IS_SMALLER) { in place_essa_pis()
373 } else if ((opline-1)->opcode == ZEND_IS_SMALLER_OR_EQUAL) { in place_essa_pis()
385 if((opline-1)->opcode == ZEND_IS_EQUAL) { in place_essa_pis()
392 } else if ((opline-1)->opcode == ZEND_IS_NOT_EQUAL) { in place_essa_pis()
399 } else if ((opline-1)->opcode == ZEND_IS_SMALLER) { in place_essa_pis()
408 } else if ((opline-1)->opcode == ZEND_IS_SMALLER_OR_EQUAL) { in place_essa_pis()
419 } else if (opline->op1_type == IS_TMP_VAR && in place_essa_pis()
420 ((opline-1)->opcode == ZEND_POST_INC || in place_essa_pis()
421 (opline-1)->opcode == ZEND_POST_DEC) && in place_essa_pis()
422 opline->op1.var == (opline-1)->result.var && in place_essa_pis()
423 (opline-1)->op1_type == IS_CV) { in place_essa_pis()
424 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
426 if ((opline-1)->opcode == ZEND_POST_DEC) { in place_essa_pis()
433 } else if ((opline-1)->opcode == ZEND_POST_INC) { in place_essa_pis()
441 } else if (opline->op1_type == IS_VAR && in place_essa_pis()
442 ((opline-1)->opcode == ZEND_PRE_INC || in place_essa_pis()
443 (opline-1)->opcode == ZEND_PRE_DEC) && in place_essa_pis()
444 opline->op1.var == (opline-1)->result.var && in place_essa_pis()
445 (opline-1)->op1_type == IS_CV) { in place_essa_pis()
446 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
455 } else if (opline->op1_type == IS_TMP_VAR && (opline-1)->opcode == ZEND_TYPE_CHECK && in place_essa_pis()
456 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV) { in place_essa_pis()
457 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
458 uint32_t type = (opline-1)->extended_value; in place_essa_pis()
468 } else if (opline->op1_type == IS_TMP_VAR && in place_essa_pis()
469 ((opline-1)->opcode == ZEND_IS_IDENTICAL in place_essa_pis()
470 || (opline-1)->opcode == ZEND_IS_NOT_IDENTICAL) && in place_essa_pis()
471 opline->op1.var == (opline-1)->result.var) { in place_essa_pis()
475 if ((opline-1)->op1_type == IS_CV && (opline-1)->op2_type == IS_CONST) { in place_essa_pis()
476 var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
477 val = CRT_CONSTANT((opline-1)->op2); in place_essa_pis()
478 } else if ((opline-1)->op1_type == IS_CONST && (opline-1)->op2_type == IS_CV) { in place_essa_pis()
479 var = EX_VAR_TO_NUM((opline-1)->op2.var); in place_essa_pis()
480 val = CRT_CONSTANT((opline-1)->op1); in place_essa_pis()
492 if ((opline-1)->opcode == ZEND_IS_IDENTICAL) { in place_essa_pis()
507 } else if (opline->op1_type == IS_TMP_VAR && (opline-1)->opcode == ZEND_INSTANCEOF && in place_essa_pis()
508 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV && in place_essa_pis()
509 (opline-1)->op2_type == IS_CONST) { in place_essa_pis()
510 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
511 zend_string *lcname = Z_STR_P(CRT_CONSTANT((opline-1)->op2) + 1); in place_essa_pis()
536 zend_op *opline, *end; in zend_ssa_rename() local
561 opline = op_array->opcodes + blocks[n].start; in zend_ssa_rename()
562 end = opline + blocks[n].len; in zend_ssa_rename()
563 for (; opline < end; opline++) { in zend_ssa_rename()
564 uint32_t k = opline - op_array->opcodes; in zend_ssa_rename()
565 if (opline->opcode != ZEND_OP_DATA) { in zend_ssa_rename()
566 zend_op *next = opline + 1; in zend_ssa_rename()
583 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_ssa_rename()
584 ssa_ops[k].op1_use = var[EX_VAR_TO_NUM(opline->op1.var)]; in zend_ssa_rename()
587 if (opline->opcode == ZEND_FE_FETCH_R || opline->opcode == ZEND_FE_FETCH_RW) { in zend_ssa_rename()
588 if (opline->op2_type == IS_CV) { in zend_ssa_rename()
589 ssa_ops[k].op2_use = var[EX_VAR_TO_NUM(opline->op2.var)]; in zend_ssa_rename()
592 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in zend_ssa_rename()
595 } else if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_ssa_rename()
596 ssa_ops[k].op2_use = var[EX_VAR_TO_NUM(opline->op2.var)]; in zend_ssa_rename()
599 switch (opline->opcode) { in zend_ssa_rename()
601 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op2_type == IS_CV) { in zend_ssa_rename()
603 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in zend_ssa_rename()
607 if (opline->op1_type == IS_CV) { in zend_ssa_rename()
609 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
616 if (opline->op2_type == IS_CV) { in zend_ssa_rename()
618 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in zend_ssa_rename()
622 if (opline->op1_type == IS_CV) { in zend_ssa_rename()
624 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
631 if (opline->op1_type == IS_CV) { in zend_ssa_rename()
633 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
640 if (opline->op1_type == IS_CV) { in zend_ssa_rename()
642 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
654 ssa_ops[k].result_use = var[EX_VAR_TO_NUM(opline->result.var)]; in zend_ssa_rename()
657 || (opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) in zend_ssa_rename()
658 && opline->op1_type == IS_CV) { in zend_ssa_rename()
660 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
670 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op1_type == IS_CV) { in zend_ssa_rename()
672 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
684 if (opline->op1_type == IS_CV) { in zend_ssa_rename()
686 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
692 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op1_type == IS_CV) { in zend_ssa_rename()
694 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
715 if (opline->op1_type == IS_CV) { in zend_ssa_rename()
717 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
724 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
737 if (opline->op1_type == IS_CV) { in zend_ssa_rename()
739 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
745 if (opline->extended_value || (build_flags & ZEND_SSA_RC_INFERENCE)) { in zend_ssa_rename()
747 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in zend_ssa_rename()
752 if (opline->op1_type == IS_CV in zend_ssa_rename()
756 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
761 if (opline->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV)) { in zend_ssa_rename()
763 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in zend_ssa_rename()
771 if (opline->result_type == IS_CV) { in zend_ssa_rename()
773 && opline->opcode != ZEND_RECV) { in zend_ssa_rename()
774 ssa_ops[k].result_use = var[EX_VAR_TO_NUM(opline->result.var)]; in zend_ssa_rename()
777 var[EX_VAR_TO_NUM(opline->result.var)] = ssa_vars_count; in zend_ssa_rename()
780 } else if (opline->result_type & (IS_VAR|IS_TMP_VAR)) { in zend_ssa_rename()
782 var[EX_VAR_TO_NUM(opline->result.var)] = ssa_vars_count; in zend_ssa_rename()
1172 void zend_ssa_remove_instr(zend_ssa *ssa, zend_op *opline, zend_ssa_op *ssa_op) /* {{{ */ in zend_ssa_remove_instr() argument
1199 MAKE_NOP(opline); in zend_ssa_remove_instr()