/PHP-8.3/Zend/Optimizer/ |
H A D | pass1.c | 44 …if (zend_optimizer_replace_by_const(op_array, opline + 1, opline->result_type, opline->result.var,… in replace_by_const_or_qm_assign() 45 MAKE_NOP(opline); in replace_by_const_or_qm_assign() 49 SET_UNUSED(opline->op2); in replace_by_const_or_qm_assign() 62 while (opline < end) { in zend_optimizer_pass1() 63 switch (opline->opcode) { in zend_optimizer_pass1() 94 if (opline->op1_type == IS_CONST && opline->op2_type == IS_CONST && in zend_optimizer_pass1() 95 …zend_optimizer_eval_binary_op(&result, opline->opcode, &ZEND_OP1_LITERAL(opline), &ZEND_OP2_LITERA… in zend_optimizer_pass1() 101 if (opline->extended_value == ZEND_CONCAT && opline->op2_type == IS_CONST in zend_optimizer_pass1() 328 COPY_NODE(opline->op1, opline->op2); in zend_optimizer_pass1() 331 MAKE_NOP(opline); in zend_optimizer_pass1() [all …]
|
H A D | pass3.c | 55 zend_op *opline; in zend_optimizer_pass3() local 66 while (opline < end) { in zend_optimizer_pass3() 68 switch (opline->opcode) { in zend_optimizer_pass3() 83 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target); in zend_optimizer_pass3() 88 MAKE_NOP(opline); in zend_optimizer_pass3() 95 *opline = *target; in zend_optimizer_pass3() 125 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 156 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 226 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 232 opline->op2.num = 0; in zend_optimizer_pass3() [all …]
|
H A D | compact_literals.c | 290 opline++; in zend_optimizer_compact_literals() 494 opline->op1.constant = map[opline->op1.constant]; in zend_optimizer_compact_literals() 497 opline->op2.constant = map[opline->op2.constant]; in zend_optimizer_compact_literals() 606 opline->result.num = func_slot[opline->op2.constant]; in zend_optimizer_compact_literals() 610 func_slot[opline->op2.constant] = opline->result.num; in zend_optimizer_compact_literals() 644 opline->result.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 648 class_slot[opline->op1.constant] = opline->result.num; in zend_optimizer_compact_literals() 741 opline->op2.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 745 class_slot[opline->op1.constant] = opline->op2.num; in zend_optimizer_compact_literals() 791 opline++; in zend_optimizer_compact_literals() [all …]
|
H A D | block_pass.c | 63 #define SET_VAR_SOURCE(opline) Tsource[VAR_NUM(opline->result.var)] = opline argument 161 COPY_NODE(opline->result, opline->op1); in zend_optimize_block() 453 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 615 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 626 opline->opcode = INV_COND(opline->opcode); in zend_optimize_block() 761 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 901 if (opline->op1_type == opline->result_type && in zend_optimize_block() 902 opline->op1.var == opline->result.var) { in zend_optimize_block() 931 opline++; in zend_optimize_block() 1092 opline->op2.num = map[opline->op2.num]; in assemble_code_blocks() [all …]
|
H A D | optimize_func_calls.c | 33 zend_op *opline; member 45 switch (opline->opcode) { in zend_delete_call_instructions() 52 MAKE_NOP(opline); in zend_delete_call_instructions() 74 opline--; in zend_delete_call_instructions() 126 SET_UNUSED(opline->op2); in zend_try_inline_call() 128 MAKE_NOP(opline); in zend_try_inline_call() 164 while (opline < end) { in zend_optimize_func_calls() 165 switch (opline->opcode) { in zend_optimize_func_calls() 181 call_stack[call].opline = opline; in zend_optimize_func_calls() 248 opline->opcode -= 9; in zend_optimize_func_calls() [all …]
|
H A D | zend_optimizer.c | 699 opline++; in zend_optimizer_replace_by_const() 754 …ZEND_SET_OP_JMP_ADDR(opline, opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(… in zend_optimizer_shift_jump() 767 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump() 771 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump() 776 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump() 787 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump() 1094 opline++; in zend_revert_pass_two() 1210 opline++; in zend_redo_pass_two() 1331 opline++; in zend_redo_pass_two_ex() 1365 Z_STR_P(RT_CONSTANT(opline, opline->op2))); in zend_adjust_fcall_stack_size() [all …]
|
H A D | optimize_temp_vars_5.c | 51 zend_op *opline, *end; in zend_optimize_temporary_variables() local 67 while (opline >= end) { in zend_optimize_temporary_variables() 69 start_of_T[VAR_NUM(opline->result.var) - offset] = opline; in zend_optimize_temporary_variables() 71 opline--; in zend_optimize_temporary_variables() 79 while (opline >= end) { in zend_optimize_temporary_variables() 82 if (opline->opcode == ZEND_ROPE_END) { in zend_optimize_temporary_variables() 108 (opline->opcode == ZEND_RETURN || in zend_optimize_temporary_variables() 111 opline->opcode == ZEND_FREE || in zend_optimize_temporary_variables() 113 zend_op *curr = opline; in zend_optimize_temporary_variables() 156 if (start_of_T[currT] == opline) { in zend_optimize_temporary_variables() [all …]
|
H A D | zend_dfg.c | 43 && opline->result_type == IS_CV in _zend_dfg_add_use_def_op() 51 switch (opline->opcode) { in _zend_dfg_add_use_def_op() 71 next = opline + 1; in _zend_dfg_add_use_def_op() 86 next = opline + 1; in _zend_dfg_add_use_def_op() 101 next = opline + 1; in _zend_dfg_add_use_def_op() 113 next = opline + 1; in _zend_dfg_add_use_def_op() 125 next = opline + 1; in _zend_dfg_add_use_def_op() 135 next = opline + 1; in _zend_dfg_add_use_def_op() 269 zend_op *opline, *end; in zend_build_dfg() local 277 end = opline + blocks[j].len; in zend_build_dfg() [all …]
|
H A D | nop_removal.c | 35 zend_op *end, *opline; in zend_optimizer_nop_removal() local 44 for (opline = op_array->opcodes; opline < end; opline++) { in zend_optimizer_nop_removal() 47 if (opline->opcode == ZEND_JMP && ZEND_OP1_JMP_ADDR(opline) > op_array->opcodes + i) { in zend_optimizer_nop_removal() 49 zend_op *target = ZEND_OP1_JMP_ADDR(opline) - 1; in zend_optimizer_nop_removal() 54 if (target == opline) { in zend_optimizer_nop_removal() 56 opline->opcode = ZEND_NOP; in zend_optimizer_nop_removal() 61 if (opline->opcode == ZEND_NOP) { in zend_optimizer_nop_removal() 67 *new_opline = *opline; in zend_optimizer_nop_removal() 68 zend_optimizer_migrate_jump(op_array, new_opline, opline); in zend_optimizer_nop_removal() 79 for (opline = op_array->opcodes; opline<end; opline++) { in zend_optimizer_nop_removal() [all …]
|
H A D | dfa_pass.c | 790 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 816 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 902 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 918 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 1211 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 1233 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 1278 opline->op2.var = opline->op1.var; in zend_dfa_optimize_op_array() 1629 opline->result.var = opline->op1.var; in zend_dfa_optimize_op_array() 1630 opline->op1_type = opline->op2_type; in zend_dfa_optimize_op_array() 1631 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() [all …]
|
H A D | zend_inference.h | 42 if (opline->opN##_type == IS_CONST) { \ 43 zval *zv = CRT_CONSTANT(opline->opN); \ 46 return (opline->opN##_type != IS_UNUSED && \ 57 if (opline->opN##_type == IS_CONST) { \ 58 zval *zv = CRT_CONSTANT(opline->opN); \ 74 if (opline->opN##_type == IS_CONST) { \ 75 zval *zv = CRT_CONSTANT(opline->opN); \ 91 if (opline->opN##_type == IS_CONST) { \ 92 zval *zv = CRT_CONSTANT(opline->opN); \ 108 if (opline->opN##_type == IS_CONST) { \ [all …]
|
H A D | compact_vars.c | 38 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() local 39 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 42 if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 45 if (opline->result_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 47 if (opline->opcode == ZEND_ROPE_INIT) { in zend_optimizer_compact_vars() 86 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() local 87 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 88 opline->op1.var = NUM_VAR(vars_map[VAR_NUM(opline->op1.var)]); in zend_optimizer_compact_vars() 90 if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 91 opline->op2.var = NUM_VAR(vars_map[VAR_NUM(opline->op2.var)]); in zend_optimizer_compact_vars() [all …]
|
H A D | zend_optimizer_internal.h | 30 #define ZEND_OP1_LITERAL(opline) (op_array)->literals[(opline)->op1.constant] argument 31 #define ZEND_OP1_JMP_ADDR(opline) OP_JMP_ADDR(opline, (opline)->op1) argument 32 #define ZEND_OP2_LITERAL(opline) (op_array)->literals[(opline)->op2.constant] argument 33 #define ZEND_OP2_JMP_ADDR(opline) OP_JMP_ADDR(opline, (opline)->op2) argument 76 static inline bool zend_optimizer_is_loop_var_free(const zend_op *opline) { in zend_optimizer_is_loop_var_free() argument 77 return (opline->opcode == ZEND_FE_FREE && opline->extended_value != ZEND_FREE_ON_RETURN) in zend_optimizer_is_loop_var_free() 78 || (opline->opcode == ZEND_FREE && opline->extended_value == ZEND_FREE_SWITCH); in zend_optimizer_is_loop_var_free() 81 void zend_optimizer_convert_to_free_op1(zend_op_array *op_array, zend_op *opline); 93 zend_op *opline, 96 zend_op *opline, [all …]
|
H A D | escape_analysis.c | 156 switch (opline->opcode) { in is_allocation_def() 162 script, op_array, opline); in is_allocation_def() 198 switch (opline->opcode) { in is_allocation_def() 227 switch (opline->opcode) { in is_local_def() 236 script, op_array, opline); in is_local_def() 252 switch (opline->opcode) { in is_local_def() 277 switch (opline->opcode) { in is_escape_use() 330 opline--; in is_escape_use() 346 switch (opline->opcode) { in is_escape_use() 354 if (opline->op2_type == IS_CV || opline->result_type != IS_UNUSED) { in is_escape_use() [all …]
|
H A D | zend_dump.c | 454 zend_dump_var(op_array, opline->result_type, EX_VAR_TO_NUM(opline->result.var)); in zend_dump_op() 627 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 631 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 649 zend_dump_unused_op(opline, opline->op1, op1_flags); in zend_dump_op() 688 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 692 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 712 zend_dump_unused_op(opline, opline->op2, op2_flags); in zend_dump_op() 1027 const zend_op *opline; in zend_dump_op_array() local 1035 opline++; in zend_dump_op_array() 1095 while (opline < end) { in zend_dump_op_array() [all …]
|
H A D | zend_ssa.c | 299 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 310 op_array, build_flags, opline, (opline-1)->op1.var, &val2); in place_essa_pis() 317 op_array, build_flags, opline, (opline-1)->op2.var, &val1); in place_essa_pis() 439 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 461 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 473 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV) { in place_essa_pis() 488 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 494 val = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op2); in place_essa_pis() 497 val = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op1); in place_essa_pis() 525 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV && in place_essa_pis() [all …]
|
/PHP-8.3/ext/opcache/jit/ |
H A D | zend_jit_vm_helpers.c | 88 opline = EX(opline); in zend_jit_leave_nested_func_helper() 204 const zend_op *opline = EX(opline); in zend_jit_undefined_long_key() local 220 const zend_op *opline = EX(opline); in zend_jit_undefined_string_key() local 254 const zend_op *opline = EX(opline); in zend_jit_func_counter_helper() local 274 const zend_op *opline = EX(opline); in zend_jit_loop_counter_helper() local 295 const zend_op *opline = EX(opline); in _zend_quick_get_constant() local 615 opline = EX(opline) = op; 920 opline = EX(opline); 1081 opline = EX(opline); 1101 opline = EX(opline); [all …]
|
H A D | zend_jit_trace.c | 1037 opline = p->opline; in zend_jit_trace_find_init_fcall_op() 1402 opline = p->opline; in zend_jit_trace_build_tssa() 1662 opline = p->opline; in zend_jit_trace_build_tssa() 4055 opline = p[1].opline; in zend_jit_trace() 4306 opline = p->opline; in zend_jit_trace() 7019 opline = p->opline; in zend_jit_trace() 7459 opline = p->opline; in zend_jit_dump_trace() 7707 EX(opline) = opline; in zend_jit_trace_hot_root() 7816 opline = EX(opline); in zend_jit_trace_hot_root() 8284 EX(opline) = opline; in zend_jit_trace_exit() [all …]
|
H A D | zend_jit_internal.h | 179 _zend_jit_decode_op((opline)->type, (opline)->op, opline, ZREG_NONE) 182 OP_ADDR(opline, op1_type, op1) 184 OP_ADDR(opline, op2_type, op2) 191 _zend_jit_decode_op((opline)->type, (opline)->_op, opline, \ 339 zend_jit_hash(opline) 507 const zend_op *opline; member 720 if (trace->opline == opline + 1) { in zend_jit_trace_get_exit_opline() 723 return OP_JMP_ADDR(opline, opline->op2); in zend_jit_trace_get_exit_opline() 724 } else if (trace->opline == OP_JMP_ADDR(opline, opline->op2)) { in zend_jit_trace_get_exit_opline() 727 return opline + 1; in zend_jit_trace_get_exit_opline() [all …]
|
H A D | zend_jit.c | 405 opline++; in zend_jit_needs_call_chain() 466 opline++; in zend_jit_needs_call_chain() 480 opline++; in zend_jit_needs_call_chain() 506 opline++; in zend_jit_needs_call_chain() 2669 && (opline+1)->op1.var == opline->result.var) { in zend_jit_next_is_send_result() 3469 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3502 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3527 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3550 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3668 && (opline+1)->op1.var == opline->result.var) { in zend_jit() [all …]
|
H A D | zend_jit_x86.dasc | 2427 | // EX(opline) = opline 2444 | // opline = EX(opline) 2466 | // opline = EX(opline) 5081 | FREE_OP opline->op1_type, opline->op1, op1_info, 0, opline 5082 | FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline 6790 | FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline 6987 | FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline 7040 | FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline 11557 | // opline = EX(opline) + 1 12381 | FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline [all …]
|
/PHP-8.3/Zend/ |
H A D | zend_vm_execute.h | 3287 opline = EX(opline); in ZEND_USER_OPCODE_SPEC_HANDLER() 4199 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_CONST_HANDLER() 4231 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_CONST_HANDLER() 4272 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_CONST_HANDLER() 4304 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_EX_SPEC_CONST_HANDLER() 14520 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_TMPVAR_HANDLER() 14552 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_TMPVAR_HANDLER() 14593 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER() 14625 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER() 39292 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_CV_HANDLER() [all …]
|
H A D | zend_opcode.c | 637 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_stmts() local 644 opline++; in zend_update_extended_stmts() 648 opline->lineno = (opline+1)->lineno; in zend_update_extended_stmts() 654 opline++; in zend_update_extended_stmts() 922 opline--; in zend_calc_live_ranges() 1086 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); in pass_two() 1139 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1163 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1168 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op1); in pass_two() 1173 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op2); in pass_two() [all …]
|
H A D | zend_vm_def.h | 1003 function_name = RT_CONSTANT(opline, opline->op2); in ZEND_VM_COLD_HELPER() 3024 opline = OP_JMP_ADDR(opline, opline->op2); 3056 opline = OP_JMP_ADDR(opline, opline->op2); 3097 opline = OP_JMP_ADDR(opline, opline->op2); 3129 opline = OP_JMP_ADDR(opline, opline->op2); 4520 gen_execute_data->opline = opline + 1; 6777 ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); 7810 …do_bind_class(RT_CONSTANT(opline, opline->op1), (OP2_TYPE == IS_CONST) ? Z_STR_P(RT_CONSTANT(oplin… 8101 opline = EX(opline); 8120 ZEND_VM_DISPATCH(opline->opcode, opline); [all …]
|
H A D | zend_compile.c | 731 opline--; in zend_do_free() 775 opline--; in zend_do_free() 799 opline--; in zend_do_free() 2947 opline->result.var = opline->op1.var; in zend_separate_if_call_and_write() 3061 if (opline && (opline->opcode == ZEND_FETCH_DIM_W in zend_delayed_compile_prop() 3509 if (opline && opline->opcode == ZEND_FETCH_OBJ_W) { in zend_compile_assign_ref() 5379 opline--; in zend_resolve_goto_label() 9183 if (opline && opline->opcode == ZEND_FETCH_DIM_RW) { in zend_compile_post_incdec() 9212 if (opline && opline->opcode == ZEND_FETCH_DIM_RW) { in zend_compile_pre_incdec() 10029 opline->op1_type = opline->op2_type; in zend_compile_encaps_list() [all …]
|