/PHP-8.1/Zend/Optimizer/ |
H A D | pass1.c | 120 …if (zend_optimizer_replace_by_const(op_array, opline + 1, opline->result_type, opline->result.var,… in zend_optimizer_pass1() 233 (opline - 1)->result.var == opline->op1.var) { in zend_optimizer_pass1() 534 ((opline + 1)->opcode == opline->opcode + 1 || in zend_optimizer_pass1() 539 (opline + 1)->op1_type == opline->result_type && in zend_optimizer_pass1() 540 (opline + 1)->op1.var == opline->result.var && in zend_optimizer_pass1() 551 (opline + 1)->opcode = opline->opcode; in zend_optimizer_pass1() 554 (opline + 1)->op1_type = (opline + 1)->op2_type; in zend_optimizer_pass1() 555 (opline + 1)->op1 = (opline + 1)->op2; in zend_optimizer_pass1() 606 COPY_NODE(opline->op1, opline->op2); in zend_optimizer_pass1() 626 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target_opline); in zend_optimizer_pass1() [all …]
|
H A D | pass3.c | 55 zend_op *opline; in zend_optimizer_pass3() local 83 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target); in zend_optimizer_pass3() 99 opline->extended_value = ZEND_OPLINE_TO_OFFSET(opline, in zend_optimizer_pass3() 133 (opline-1)->extended_value = ZEND_OPLINE_TO_OFFSET((opline-1), ZEND_OP2_JMP_ADDR(opline-1)); in zend_optimizer_pass3() 134 ZEND_SET_OP_JMP_ADDR((opline-1), (opline-1)->op2, target); in zend_optimizer_pass3() 155 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 192 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 278 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 311 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 347 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target); in zend_optimizer_pass3() [all …]
|
H A D | compact_literals.c | 317 opline++; in zend_optimizer_compact_literals() 521 opline->op1.constant = map[opline->op1.constant]; in zend_optimizer_compact_literals() 524 opline->op2.constant = map[opline->op2.constant]; in zend_optimizer_compact_literals() 633 opline->result.num = func_slot[opline->op2.constant]; in zend_optimizer_compact_literals() 637 func_slot[opline->op2.constant] = opline->result.num; in zend_optimizer_compact_literals() 671 opline->result.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 675 class_slot[opline->op1.constant] = opline->result.num; in zend_optimizer_compact_literals() 766 opline->op2.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 770 class_slot[opline->op1.constant] = opline->op2.num; in zend_optimizer_compact_literals() 816 opline++; in zend_optimizer_compact_literals() [all …]
|
H A D | optimize_func_calls.c | 40 zend_op *opline; member 52 switch (opline->opcode) { in zend_delete_call_instructions() 59 MAKE_NOP(opline); in zend_delete_call_instructions() 78 MAKE_NOP(opline); in zend_delete_call_instructions() 82 opline->result.var = 0; in zend_delete_call_instructions() 91 opline--; in zend_delete_call_instructions() 145 MAKE_NOP(opline); in zend_try_inline_call() 181 while (opline < end) { in zend_optimize_func_calls() 182 switch (opline->opcode) { in zend_optimize_func_calls() 198 call_stack[call].opline = opline; in zend_optimize_func_calls() [all …]
|
H A D | zend_optimizer.c | 357 (opline + 1)->op2.var == opline->result.var) { in zend_optimizer_update_op2_const() 637 opline++; in zend_optimizer_replace_by_const() 694 …ZEND_SET_OP_JMP_ADDR(opline, opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(… in zend_optimizer_shift_jump() 697 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump() 709 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump() 713 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump() 1026 opline++; in zend_revert_pass_two() 1144 opline++; in zend_redo_pass_two() 1267 opline++; in zend_redo_pass_two_ex() 1301 Z_STR_P(RT_CONSTANT(opline, opline->op2))); in zend_adjust_fcall_stack_size() [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() 446 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 608 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 619 opline->opcode = INV_COND(opline->opcode); in zend_optimize_block() 801 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 941 if (opline->op1_type == opline->result_type && in zend_optimize_block() 942 opline->op1.var == opline->result.var) { in zend_optimize_block() 971 opline++; in zend_optimize_block() 1135 opline->op2.num = map[opline->op2.num]; in assemble_code_blocks() [all …]
|
H A D | optimize_temp_vars_5.c | 50 zend_op *opline, *end; in zend_optimize_temporary_variables() local 66 while (opline >= end) { in zend_optimize_temporary_variables() 68 start_of_T[VAR_NUM(opline->result.var) - offset] = opline; in zend_optimize_temporary_variables() 70 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() 112 opline->opcode == ZEND_FREE || in zend_optimize_temporary_variables() 114 zend_op *curr = opline; in zend_optimize_temporary_variables() 154 if (start_of_T[currT] == opline) { in zend_optimize_temporary_variables() 164 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() 268 zend_op *opline, *end; in zend_build_dfg() local 276 end = opline + blocks[j].len; in zend_build_dfg() [all …]
|
H A D | dfa_pass.c | 808 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 834 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 897 opline->op1.num = opline->op2.num; in zend_dfa_optimize_jmps() 963 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 979 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 1272 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 1294 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 1339 opline->op2.var = opline->op1.var; in zend_dfa_optimize_op_array() 1669 opline->op1_type = opline->op2_type; in zend_dfa_optimize_op_array() 1670 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() [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 | zend_inference.h | 41 if (opline->opN##_type == IS_CONST) { \ 42 zval *zv = CRT_CONSTANT(opline->opN); \ 45 return (opline->opN##_type != IS_UNUSED && \ 56 if (opline->opN##_type == IS_CONST) { \ 57 zval *zv = CRT_CONSTANT(opline->opN); \ 79 if (opline->opN##_type == IS_CONST) { \ 80 zval *zv = CRT_CONSTANT(opline->opN); \ 102 if (opline->opN##_type == IS_CONST) { \ 103 zval *zv = CRT_CONSTANT(opline->opN); \ 119 if (opline->opN##_type == IS_CONST) { \ [all …]
|
H A D | compact_vars.c | 37 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() local 38 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 41 if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 44 if (opline->result_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 46 if (opline->opcode == ZEND_ROPE_INIT) { in zend_optimizer_compact_vars() 85 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() local 86 if (opline->op1_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 87 opline->op1.var = NUM_VAR(vars_map[VAR_NUM(opline->op1.var)]); in zend_optimizer_compact_vars() 89 if (opline->op2_type & (IS_CV|IS_VAR|IS_TMP_VAR)) { in zend_optimizer_compact_vars() 90 opline->op2.var = NUM_VAR(vars_map[VAR_NUM(opline->op2.var)]); in zend_optimizer_compact_vars() [all …]
|
H A D | escape_analysis.c | 156 switch (opline->opcode) { in is_allocation_def() 192 switch (opline->opcode) { in is_allocation_def() 221 switch (opline->opcode) { in is_local_def() 240 switch (opline->opcode) { in is_local_def() 265 switch (opline->opcode) { in is_escape_use() 318 opline--; in is_escape_use() 320 if (opline->op1_type != IS_CV in is_escape_use() 334 switch (opline->opcode) { in is_escape_use() 336 if (opline->op1_type != IS_CV in is_escape_use() 342 if (opline->op2_type == IS_CV || opline->result_type != IS_UNUSED) { in is_escape_use() [all …]
|
H A D | zend_optimizer_internal.h | 28 #define ZEND_OP1_LITERAL(opline) (op_array)->literals[(opline)->op1.constant] argument 29 #define ZEND_OP1_JMP_ADDR(opline) OP_JMP_ADDR(opline, (opline)->op1) argument 30 #define ZEND_OP2_LITERAL(opline) (op_array)->literals[(opline)->op2.constant] argument 31 #define ZEND_OP2_JMP_ADDR(opline) OP_JMP_ADDR(opline, (opline)->op2) argument 74 static inline bool zend_optimizer_is_loop_var_free(const zend_op *opline) { in zend_optimizer_is_loop_var_free() argument 75 return (opline->opcode == ZEND_FE_FREE && opline->extended_value != ZEND_FREE_ON_RETURN) in zend_optimizer_is_loop_var_free() 76 || (opline->opcode == ZEND_FREE && opline->extended_value == ZEND_FREE_SWITCH); in zend_optimizer_is_loop_var_free() 88 zend_op *opline, 91 zend_op *opline, 94 zend_op *opline, [all …]
|
H A D | zend_ssa.c | 300 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 311 op_array, build_flags, opline, (opline-1)->op1.var, &val2); in place_essa_pis() 318 op_array, build_flags, opline, (opline-1)->op2.var, &val1); in place_essa_pis() 440 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 462 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 474 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV) { in place_essa_pis() 489 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 495 val = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op2); in place_essa_pis() 498 val = CRT_CONSTANT_EX(op_array, (opline-1), (opline-1)->op1); in place_essa_pis() 526 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV && in place_essa_pis() [all …]
|
H A D | zend_dump.c | 436 zend_dump_var(op_array, opline->result_type, EX_VAR_TO_NUM(opline->result.var)); in zend_dump_op() 609 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 613 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 631 zend_dump_unused_op(opline, opline->op1, op1_flags); in zend_dump_op() 670 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 674 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 694 zend_dump_unused_op(opline, opline->op2, op2_flags); in zend_dump_op() 1009 const zend_op *opline; in zend_dump_op_array() local 1017 opline++; in zend_dump_op_array() 1077 while (opline < end) { in zend_dump_op_array() [all …]
|
H A D | sccp.c | 213 switch (opline->opcode) { in can_replace_op1() 282 switch (opline->opcode) { in can_replace_op2() 302 switch (opline->opcode) { in try_replace_op1() 351 switch (opline->opcode) { in try_replace_op2() 362 MAKE_NOP(opline); in try_replace_op2() 997 switch (opline->opcode) { in sccp_visit_instr() 1360 opline++; in sccp_visit_instr() 1375 switch (opline->opcode) { in sccp_visit_instr() 1812 zend_op *opline = call->arg_info[i].opline; in sccp_visit_instr() local 1813 if (opline->opcode != ZEND_SEND_VAL && opline->opcode != ZEND_SEND_VAR) { in sccp_visit_instr() [all …]
|
/PHP-8.1/ext/opcache/jit/ |
H A D | zend_jit_vm_helpers.c | 88 opline = EX(opline); in zend_jit_leave_nested_func_helper() 217 const zend_op *opline = EX(opline); in zend_jit_func_counter_helper() local 237 const zend_op *opline = EX(opline); in zend_jit_loop_counter_helper() local 258 const zend_op *opline = EX(opline); in _zend_quick_get_constant() local 313 const zend_op *opline = EX(opline); in zend_jit_trace_counter_helper() local 578 opline = EX(opline) = op; 582 const zend_op *opline = EX(opline); local 873 opline = EX(opline); 1034 opline = EX(opline); 1054 opline = EX(opline); [all …]
|
H A D | zend_jit_trace.c | 1037 opline = p->opline; in zend_jit_trace_find_init_fcall_op() 1400 opline = p->opline; in zend_jit_trace_build_tssa() 1660 opline = p->opline; in zend_jit_trace_build_tssa() 4039 opline = p[1].opline; in zend_jit_trace() 4290 opline = p->opline; in zend_jit_trace() 7016 opline = p->opline; in zend_jit_trace() 7377 opline = p->opline; in zend_jit_dump_trace() 7625 EX(opline) = opline; in zend_jit_trace_hot_root() 7733 opline = EX(opline); in zend_jit_trace_hot_root() 8201 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, \ 337 zend_jit_hash(opline) 505 const zend_op *opline; member 706 if (trace->opline == opline + 1) { in zend_jit_trace_get_exit_opline() 709 return OP_JMP_ADDR(opline, opline->op2); in zend_jit_trace_get_exit_opline() 710 } else if (trace->opline == OP_JMP_ADDR(opline, opline->op2)) { in zend_jit_trace_get_exit_opline() 713 return opline + 1; in zend_jit_trace_get_exit_opline() [all …]
|
H A D | zend_jit.c | 373 opline++; in zend_jit_needs_call_chain() 434 opline++; in zend_jit_needs_call_chain() 448 opline++; in zend_jit_needs_call_chain() 474 opline++; in zend_jit_needs_call_chain() 2656 && (opline+1)->op1.var == opline->result.var) { in zend_jit_next_is_send_result() 3457 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3491 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3517 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3541 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 3661 && (opline+1)->op1.var == opline->result.var) { in zend_jit() [all …]
|
/PHP-8.1/Zend/ |
H A D | zend_vm_execute.h | 3150 opline = EX(opline); in ZEND_USER_OPCODE_SPEC_HANDLER() 4054 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_CONST_HANDLER() 4086 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_CONST_HANDLER() 4123 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZNZ_SPEC_CONST_HANDLER() 4162 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_CONST_HANDLER() 4194 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_EX_SPEC_CONST_HANDLER() 14160 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_TMPVAR_HANDLER() 14192 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_TMPVAR_HANDLER() 14229 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER() 14268 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER() [all …]
|
H A D | zend_opcode.c | 617 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_stmts() local 624 opline++; in zend_update_extended_stmts() 628 opline->lineno = (opline+1)->lineno; in zend_update_extended_stmts() 634 opline++; in zend_update_extended_stmts() 902 opline--; in zend_calc_live_ranges() 1091 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1120 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1144 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1149 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op1); in pass_two() 1154 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op2); in pass_two() [all …]
|
H A D | zend_vm_def.h | 1000 function_name = RT_CONSTANT(opline, opline->op2); in ZEND_VM_COLD_HELPER() 2967 opline = OP_JMP_ADDR(opline, opline->op2); 2999 opline = OP_JMP_ADDR(opline, opline->op2); 3034 opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); 3036 opline = OP_JMP_ADDR(opline, opline->op2); 3075 opline = OP_JMP_ADDR(opline, opline->op2); 3107 opline = OP_JMP_ADDR(opline, opline->op2); 4485 gen_execute_data->opline = opline + 1; 7935 opline = EX(opline); 7954 ZEND_VM_DISPATCH(opline->opcode, opline); [all …]
|
H A D | zend_compile.c | 710 opline--; in zend_do_free() 754 opline--; in zend_do_free() 780 opline--; in zend_do_free() 1341 ++opline; in zend_build_delayed_early_binding_list() 1372 zval *lcname = RT_CONSTANT(opline, opline->op1); in zend_do_delayed_early_binding() 2827 opline->result.var = opline->op1.var; in zend_separate_if_call_and_write() 3376 if (opline && opline->opcode == ZEND_FETCH_OBJ_W) { in zend_compile_assign_ref() 5198 opline--; in zend_resolve_goto_label() 9696 opline->op1_type = opline->op2_type; in zend_compile_encaps_list() 9697 opline->op1 = opline->op2; in zend_compile_encaps_list() [all …]
|