Lines Matching refs:opline

185 …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
187 zend_op *op = opline; in find_adjusted_tmp_var()
248 zend_op *opline = op_array->opcodes + blocks[j].start + blocks[j].len - 1; in place_essa_pis() local
258 switch (opline->opcode) { in place_essa_pis()
268 if (opline->op1_type == IS_CV) { in place_essa_pis()
269 int var = EX_VAR_TO_NUM(opline->op1.var); in place_essa_pis()
276 if (opline->op1_type == IS_CV) { in place_essa_pis()
277 int var = EX_VAR_TO_NUM(opline->op1.var); in place_essa_pis()
294 if (opline->op1_type == IS_TMP_VAR && in place_essa_pis()
295 ((opline-1)->opcode == ZEND_IS_EQUAL || in place_essa_pis()
296 (opline-1)->opcode == ZEND_IS_NOT_EQUAL || in place_essa_pis()
297 (opline-1)->opcode == ZEND_IS_SMALLER || in place_essa_pis()
298 (opline-1)->opcode == ZEND_IS_SMALLER_OR_EQUAL) && in place_essa_pis()
299 opline->op1.var == (opline-1)->result.var) { in place_essa_pis()
306 if ((opline-1)->op1_type == IS_CV) { in place_essa_pis()
307 var1 = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
308 } else if ((opline-1)->op1_type == IS_TMP_VAR) { in place_essa_pis()
310 op_array, build_flags, opline, (opline-1)->op1.var, &val2); in place_essa_pis()
313 if ((opline-1)->op2_type == IS_CV) { in place_essa_pis()
314 var2 = EX_VAR_TO_NUM((opline-1)->op2.var); in place_essa_pis()
315 } else if ((opline-1)->op2_type == IS_TMP_VAR) { in place_essa_pis()
317 op_array, build_flags, opline, (opline-1)->op2.var, &val1); in place_essa_pis()
331 if ((opline-1)->op2_type == IS_CONST) { in place_essa_pis()
332 zval *zv = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op2); in place_essa_pis()
349 if ((opline-1)->op1_type == IS_CONST) { in place_essa_pis()
350 zval *zv = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op1); in place_essa_pis()
352 add_val1 = Z_LVAL_P(CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op1)); in place_essa_pis()
367 if ((opline-1)->opcode == ZEND_IS_EQUAL) { in place_essa_pis()
374 } else if ((opline-1)->opcode == ZEND_IS_NOT_EQUAL) { in place_essa_pis()
381 } else if ((opline-1)->opcode == ZEND_IS_SMALLER) { in place_essa_pis()
390 } else if ((opline-1)->opcode == ZEND_IS_SMALLER_OR_EQUAL) { in place_essa_pis()
402 if((opline-1)->opcode == ZEND_IS_EQUAL) { in place_essa_pis()
409 } else if ((opline-1)->opcode == ZEND_IS_NOT_EQUAL) { in place_essa_pis()
416 } else if ((opline-1)->opcode == ZEND_IS_SMALLER) { in place_essa_pis()
425 } else if ((opline-1)->opcode == ZEND_IS_SMALLER_OR_EQUAL) { in place_essa_pis()
436 } else if (opline->op1_type == IS_TMP_VAR && in place_essa_pis()
437 ((opline-1)->opcode == ZEND_POST_INC || in place_essa_pis()
438 (opline-1)->opcode == ZEND_POST_DEC) && in place_essa_pis()
439 opline->op1.var == (opline-1)->result.var && in place_essa_pis()
440 (opline-1)->op1_type == IS_CV) { in place_essa_pis()
441 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
443 if ((opline-1)->opcode == ZEND_POST_DEC) { in place_essa_pis()
450 } else if ((opline-1)->opcode == ZEND_POST_INC) { in place_essa_pis()
458 } else if (opline->op1_type == IS_TMP_VAR && in place_essa_pis()
459 ((opline-1)->opcode == ZEND_PRE_INC || in place_essa_pis()
460 (opline-1)->opcode == ZEND_PRE_DEC) && in place_essa_pis()
461 opline->op1.var == (opline-1)->result.var && in place_essa_pis()
462 (opline-1)->op1_type == IS_CV) { in place_essa_pis()
463 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
472 } else if (opline->op1_type == IS_TMP_VAR && (opline-1)->opcode == ZEND_TYPE_CHECK && in place_essa_pis()
473 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV) { in place_essa_pis()
474 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
475 uint32_t type = (opline-1)->extended_value; in place_essa_pis()
485 } else if (opline->op1_type == IS_TMP_VAR && in place_essa_pis()
486 ((opline-1)->opcode == ZEND_IS_IDENTICAL in place_essa_pis()
487 || (opline-1)->opcode == ZEND_IS_NOT_IDENTICAL) && in place_essa_pis()
488 opline->op1.var == (opline-1)->result.var) { in place_essa_pis()
492 if ((opline-1)->op1_type == IS_CV && (opline-1)->op2_type == IS_CONST) { in place_essa_pis()
493 var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
494 val = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op2); in place_essa_pis()
495 } else if ((opline-1)->op1_type == IS_CONST && (opline-1)->op2_type == IS_CV) { in place_essa_pis()
496 var = EX_VAR_TO_NUM((opline-1)->op2.var); in place_essa_pis()
497 val = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op1); in place_essa_pis()
509 if ((opline-1)->opcode == ZEND_IS_IDENTICAL) { in place_essa_pis()
524 } else if (opline->op1_type == IS_TMP_VAR && (opline-1)->opcode == ZEND_INSTANCEOF && in place_essa_pis()
525 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV && in place_essa_pis()
526 (opline-1)->op2_type == IS_CONST) { in place_essa_pis()
527 int var = EX_VAR_TO_NUM((opline-1)->op1.var); in place_essa_pis()
528 zend_string *lcname = Z_STR_P(CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op2) + 1); in place_essa_pis()
543 …ne int _zend_ssa_rename_op(const zend_op_array *op_array, const zend_op *opline, uint32_t k, uint3… in _zend_ssa_rename_op() argument
547 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in _zend_ssa_rename_op()
548 ssa_ops[k].op1_use = var[EX_VAR_TO_NUM(opline->op1.var)]; in _zend_ssa_rename_op()
551 if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in _zend_ssa_rename_op()
552 ssa_ops[k].op2_use = var[EX_VAR_TO_NUM(opline->op2.var)]; in _zend_ssa_rename_op()
556 && opline->result_type == IS_CV in _zend_ssa_rename_op()
557 && opline->opcode != ZEND_RECV) { in _zend_ssa_rename_op()
558 ssa_ops[k].result_use = var[EX_VAR_TO_NUM(opline->result.var)]; in _zend_ssa_rename_op()
562 switch (opline->opcode) { in _zend_ssa_rename_op()
564 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op2_type == IS_CV) { in _zend_ssa_rename_op()
566 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in _zend_ssa_rename_op()
570 if (opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
573 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in _zend_ssa_rename_op()
579 if (opline->op2_type == IS_CV) { in _zend_ssa_rename_op()
581 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in _zend_ssa_rename_op()
585 if (opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
591 next = opline + 1; in _zend_ssa_rename_op()
602 if (opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
604 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in _zend_ssa_rename_op()
610 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
612 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in _zend_ssa_rename_op()
616 next = opline + 1; in _zend_ssa_rename_op()
629 next = opline + 1; in _zend_ssa_rename_op()
642 next = opline + 1; in _zend_ssa_rename_op()
655 next = opline + 1; in _zend_ssa_rename_op()
663 if (opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
665 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in _zend_ssa_rename_op()
669 next = opline + 1; in _zend_ssa_rename_op()
702 if (opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
712 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
717 ssa_ops[k].result_use = var[EX_VAR_TO_NUM(opline->result.var)]; in _zend_ssa_rename_op()
720 ssa_ops[k].result_use = var[EX_VAR_TO_NUM(opline->result.var)]; in _zend_ssa_rename_op()
724 || (opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) in _zend_ssa_rename_op()
725 && opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
730 if (opline->op1_type == IS_CV in _zend_ssa_rename_op()
739 if (opline->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV)) { in _zend_ssa_rename_op()
745 if (opline->op2_type != IS_CV) { in _zend_ssa_rename_op()
749 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in _zend_ssa_rename_op()
754 if ((opline->extended_value & ZEND_BIND_REF) || (build_flags & ZEND_SSA_RC_INFERENCE)) { in _zend_ssa_rename_op()
756 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in _zend_ssa_rename_op()
764 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in _zend_ssa_rename_op()
772 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op1_type == IS_CV) { in _zend_ssa_rename_op()
774 var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count; in _zend_ssa_rename_op()
778 if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op2_type == IS_CV) { in _zend_ssa_rename_op()
780 var[EX_VAR_TO_NUM(opline->op2.var)] = ssa_vars_count; in _zend_ssa_rename_op()
784 if (opline->opcode == ZEND_FRAMELESS_ICALL_3) { in _zend_ssa_rename_op()
785 next = opline + 1; in _zend_ssa_rename_op()
802 if (opline->result_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in _zend_ssa_rename_op()
804 var[EX_VAR_TO_NUM(opline->result.var)] = ssa_vars_count; in _zend_ssa_rename_op()
813 ZEND_API int zend_ssa_rename_op(const zend_op_array *op_array, const zend_op *opline, uint32_t k, u… in zend_ssa_rename_op() argument
815 return _zend_ssa_rename_op(op_array, opline, k, build_flags, ssa_vars_count, ssa_ops, var); in zend_ssa_rename_op()
826 zend_op *opline, *end; in zend_ssa_rename() local
851 opline = op_array->opcodes + blocks[n].start; in zend_ssa_rename()
852 end = opline + blocks[n].len; in zend_ssa_rename()
853 for (; opline < end; opline++) { in zend_ssa_rename()
854 uint32_t k = opline - op_array->opcodes; in zend_ssa_rename()
855 if (opline->opcode != ZEND_OP_DATA) { in zend_ssa_rename()
856 …ssa_vars_count = _zend_ssa_rename_op(op_array, opline, k, build_flags, ssa_vars_count, ssa_ops, va… in zend_ssa_rename()
1281 void zend_ssa_remove_instr(zend_ssa *ssa, zend_op *opline, zend_ssa_op *ssa_op) /* {{{ */ in zend_ssa_remove_instr() argument
1308 MAKE_NOP(opline); in zend_ssa_remove_instr()