/PHP-7.1/ext/opcache/Optimizer/ |
H A D | pass2.c | 37 zend_op *opline; in zend_optimizer_pass2() local 41 while (opline < end) { in zend_optimizer_pass2() 137 ZEND_OP1(opline).var == ZEND_RESULT(opline).var) { in zend_optimizer_pass2() 168 COPY_NODE(opline->op1, opline->op2); in zend_optimizer_pass2() 170 MAKE_NOP(opline); in zend_optimizer_pass2() 177 if (ZEND_OP2_JMP_ADDR(opline) == ZEND_OP1_JMP_ADDR(opline + 1)) { in zend_optimizer_pass2() 190 opline->extended_value = ZEND_OPLINE_TO_OFFSET(opline, ZEND_OP1_JMP_ADDR(opline + 1)); in zend_optimizer_pass2() 192 opline->extended_value = ZEND_OPLINE_TO_OFFSET(opline, ZEND_OP2_JMP_ADDR(opline)); in zend_optimizer_pass2() 193 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP1_JMP_ADDR(opline + 1)); in zend_optimizer_pass2() 210 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target_opline); in zend_optimizer_pass2() [all …]
|
H A D | pass3.c | 58 zend_op *opline; in zend_optimizer_pass3() local 113 COPY_NODE(opline->op1, opline->op2); in zend_optimizer_pass3() 160 opline++; in zend_optimizer_pass3() 172 if (ZEND_OP1_JMP_ADDR(opline) == opline + 1) { in zend_optimizer_pass3() 233 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target + 1); in zend_optimizer_pass3() 239 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target + 1); in zend_optimizer_pass3() 260 if (ZEND_OP2_JMP_ADDR(opline) == opline + 1) { in zend_optimizer_pass3() 261 if (ZEND_OP1(opline).var == ZEND_RESULT(opline).var) { in zend_optimizer_pass3() 294 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, new_target); in zend_optimizer_pass3() 379 opline->opcode = opline->opcode-3; /* JMP_EX -> JMP */ in zend_optimizer_pass3() [all …]
|
H A D | pass1_5.c | 48 while (opline < end) { in zend_optimizer_pass1() 79 if ((opline->opcode == ZEND_DIV || opline->opcode == ZEND_MOD) && in zend_optimizer_pass1() 83 } else if ((opline->opcode == ZEND_SL || opline->opcode == ZEND_SR) && in zend_optimizer_pass1() 87 …nd_binary_op_produces_numeric_string_error(opline->opcode, &ZEND_OP1_LITERAL(opline), &ZEND_OP2_LI… in zend_optimizer_pass1() 103 MAKE_NOP(opline); in zend_optimizer_pass1() 141 MAKE_NOP(opline); in zend_optimizer_pass1() 169 MAKE_NOP(opline); in zend_optimizer_pass1() 265 MAKE_NOP(opline); in zend_optimizer_pass1() 288 MAKE_NOP(opline); in zend_optimizer_pass1() 326 ZEND_RESULT((opline - 1)).var == ZEND_OP1(opline).var) { in zend_optimizer_pass1() [all …]
|
H A D | optimize_func_calls.c | 41 zend_op *opline; member 50 switch (opline->opcode) { in zend_delete_call_instructions() 57 MAKE_NOP(opline); in zend_delete_call_instructions() 76 MAKE_NOP(opline); in zend_delete_call_instructions() 80 opline->result.var = 0; in zend_delete_call_instructions() 89 opline--; in zend_delete_call_instructions() 142 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() 178 call_stack[call].opline = opline; in zend_optimize_func_calls() [all …]
|
H A D | nop_removal.c | 36 zend_op *end, *opline; in zend_optimizer_nop_removal() local 45 for (opline = op_array->opcodes; opline < end; opline++) { in zend_optimizer_nop_removal() 48 if (opline->opcode == ZEND_JMP && ZEND_OP1_JMP_ADDR(opline) > op_array->opcodes + i) { in zend_optimizer_nop_removal() 55 if (target == opline) { in zend_optimizer_nop_removal() 68 *new_opline = *opline; in zend_optimizer_nop_removal() 110 for (opline = op_array->opcodes; opline<end; opline++) { in zend_optimizer_nop_removal() 111 switch (opline->opcode) { in zend_optimizer_nop_removal() 114 …ZEND_SET_OP_JMP_ADDR(opline, opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(… in zend_optimizer_nop_removal() 117 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_nop_removal() 128 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_nop_removal() [all …]
|
H A D | dfa_pass.c | 243 …ZEND_SET_OP_JMP_ADDR(opline, opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(… in zend_ssa_remove_nops() 246 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_ssa_remove_nops() 257 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_ssa_remove_nops() 264 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_ssa_remove_nops() 367 && (opline->op2_type != IS_CV || opline->op2.var != cv_var); in opline_supports_assign_contraction() 541 opline->result_type = opline->op1_type; in zend_dfa_optimize_op_array() 542 opline->result.var = opline->op1.var; in zend_dfa_optimize_op_array() 543 opline->op1_type = opline->op2_type; in zend_dfa_optimize_op_array() 544 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 632 opline->result_type = opline->op1_type; in zend_dfa_optimize_op_array() [all …]
|
H A D | block_pass.c | 80 #define SET_VAR_SOURCE(opline) Tsource[VAR_NUM(opline->result.var)] = opline argument 164 COPY_NODE(opline->result, opline->op1); in zend_optimize_block() 391 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 525 (opline->result_type == opline->op1_type && in zend_optimize_block() 526 opline->result.var == opline->op1.var))) { in zend_optimize_block() 646 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 781 if (opline->op1_type == opline->result_type && in zend_optimize_block() 782 opline->op1.var == opline->result.var) { in zend_optimize_block() 793 opline++; in zend_optimize_block() 943 opline->op2.num = map[opline->op2.num]; in assemble_code_blocks() [all …]
|
H A D | optimize_temp_vars_5.c | 51 zend_op *opline, *end; in zend_optimize_temporary_variables() local 68 while (opline >= end) { in zend_optimize_temporary_variables() 70 start_of_T[VAR_NUM(ZEND_RESULT(opline).var) - offset] = opline; in zend_optimize_temporary_variables() 72 opline--; in zend_optimize_temporary_variables() 81 while (opline >= end) { in zend_optimize_temporary_variables() 84 if (opline->opcode == ZEND_ROPE_END) { in zend_optimize_temporary_variables() 114 opline->opcode == ZEND_FREE || in zend_optimize_temporary_variables() 116 zend_op *curr = opline; in zend_optimize_temporary_variables() 156 if (start_of_T[currT] == opline) { in zend_optimize_temporary_variables() 166 if (start_of_T[currT] == opline) { in zend_optimize_temporary_variables() [all …]
|
H A D | zend_optimizer.c | 100 opline++; in zend_optimizer_lookup_cv() 169 MAKE_NOP(opline); in zend_optimizer_update_op1_const() 401 opline->op2.num = map[opline->op2.num]; in zend_optimizer_remove_live_range() 403 opline++; in zend_optimizer_remove_live_range() 493 m = opline; in zend_optimizer_replace_by_const() 535 ++opline; in zend_optimizer_replace_by_const() 559 opline++; in zend_optimizer_replace_by_const() 827 opline++; in zend_revert_pass_two() 845 opline++; in zend_redo_pass_two() 872 opline++; in zend_redo_pass_two_ex() [all …]
|
H A D | zend_inference.h | 39 if (opline->opN##_type == IS_CONST) { \ 43 return (opline->opN##_type != IS_UNUSED && \ 55 if (opline->opN##_type == IS_CONST) { \ 66 } else if (opline->opN##_type != IS_UNUSED && \ 79 if (opline->opN##_type == IS_CONST) { \ 90 } else if (opline->opN##_type != IS_UNUSED && \ 103 if (opline->opN##_type == IS_CONST) { \ 108 } else if (opline->opN##_type != IS_UNUSED && \ 121 if (opline->opN##_type == IS_CONST) { \ 126 } else if (opline->opN##_type != IS_UNUSED && \ [all …]
|
H A D | zend_optimizer_internal.h | 27 #define ZEND_RESULT_TYPE(opline) (opline)->result_type argument 28 #define ZEND_RESULT(opline) (opline)->result argument 29 #define ZEND_OP1_TYPE(opline) (opline)->op1_type argument 30 #define ZEND_OP1(opline) (opline)->op1 argument 31 #define ZEND_OP1_LITERAL(opline) (op_array)->literals[(opline)->op1.constant] argument 32 #define ZEND_OP1_JMP_ADDR(opline) OP_JMP_ADDR(opline, (opline)->op1) argument 33 #define ZEND_OP2_TYPE(opline) (opline)->op2_type argument 34 #define ZEND_OP2(opline) (opline)->op2 argument 35 #define ZEND_OP2_LITERAL(opline) (op_array)->literals[(opline)->op2.constant] argument 36 #define ZEND_OP2_JMP_ADDR(opline) OP_JMP_ADDR(opline, (opline)->op2) argument [all …]
|
H A D | compact_literals.c | 119 zend_op *opline, *end; in zend_optimizer_compact_literals() local 156 opline->op1, in zend_optimizer_compact_literals() 170 opline->op1, in zend_optimizer_compact_literals() 196 opline->op1, in zend_optimizer_compact_literals() 216 opline->op2, in zend_optimizer_compact_literals() 252 opline->op1, in zend_optimizer_compact_literals() 275 opline->op1, in zend_optimizer_compact_literals() 316 opline++; in zend_optimizer_compact_literals() 507 opline->op1.constant = map[opline->op1.constant]; in zend_optimizer_compact_literals() 510 opline->op2.constant = map[opline->op2.constant]; in zend_optimizer_compact_literals() [all …]
|
H A D | zend_ssa.c | 167 zend_op *op = opline; in find_adjusted_tmp_var() 265 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 276 op_array, build_flags, opline, (opline-1)->op1.var, &val2); in place_essa_pis() 283 op_array, build_flags, opline, (opline-1)->op2.var, &val1); in place_essa_pis() 413 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 435 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 447 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV) { in place_essa_pis() 463 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 467 if ((opline-1)->op1_type == IS_CV && (opline-1)->op2_type == IS_CONST) { in place_essa_pis() 500 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV && in place_essa_pis() [all …]
|
H A D | zend_dfg.c | 42 zend_op *opline, *end; in zend_build_dfg() local 48 end = opline + blocks[j].len; in zend_build_dfg() 49 for (; opline < end; opline++) { in zend_build_dfg() 50 if (opline->opcode != ZEND_OP_DATA) { in zend_build_dfg() 51 zend_op *next = opline + 1; in zend_build_dfg() 66 if (opline->op1_type == IS_CV) { in zend_build_dfg() 67 var_num = EX_VAR_TO_NUM(opline->op1.var); in zend_build_dfg() 68 switch (opline->opcode) { in zend_build_dfg() 154 if (opline->op2_type == IS_CV) { in zend_build_dfg() 156 switch (opline->opcode) { in zend_build_dfg() [all …]
|
H A D | zend_dump.c | 406 zend_dump_var(op_array, opline->result_type, EX_VAR_TO_NUM(opline->result.var)); in zend_dump_op() 557 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 561 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 579 zend_dump_unused_op(opline, opline->op1, op1_flags); in zend_dump_op() 593 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 597 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 615 zend_dump_unused_op(opline, opline->op2, op2_flags); in zend_dump_op() 620 if (opline->opcode != ZEND_CATCH || !opline->result.num) { in zend_dump_op() 930 opline++; in zend_dump_op_array() 993 while (opline < end) { in zend_dump_op_array() [all …]
|
H A D | zend_cfg.c | 302 switch(opline->opcode) { in zend_build_cfg() 353 BB_START(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes); in zend_build_cfg() 362 BB_START(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes); in zend_build_cfg() 368 BB_START(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes); in zend_build_cfg() 369 BB_START(ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); in zend_build_cfg() 381 BB_START(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes); in zend_build_cfg() 386 BB_START(ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); in zend_build_cfg() 394 BB_START(ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); in zend_build_cfg() 399 BB_START(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes); in zend_build_cfg() 493 zend_op *opline; in zend_build_cfg() local [all …]
|
H A D | zend_call_graph.c | 85 zend_op *opline = op_array->opcodes; in zend_analyze_calls() local 86 zend_op *end = opline + op_array->last; in zend_analyze_calls() 95 while (opline != end) { in zend_analyze_calls() 96 switch (opline->opcode) { in zend_analyze_calls() 106 call_info->caller_init_opline = opline; in zend_analyze_calls() 109 call_info->num_args = opline->extended_value; in zend_analyze_calls() 146 call_info->caller_call_opline = opline; in zend_analyze_calls() 159 uint32_t num = opline->op2.num; in zend_analyze_calls() 164 call_info->arg_info[num].opline = opline; in zend_analyze_calls() 173 opline++; in zend_analyze_calls() [all …]
|
H A D | zend_inference.c | 784 zend_op *opline; in zend_inference_calc_range() local 939 op_array, ssa, opline, &ssa->ops[line], opline->opcode, tmp); in zend_inference_calc_range() 1294 opline++; in zend_inference_calc_range() 1321 opline++; in zend_inference_calc_range() 2181 opline--; in zend_update_type_info() 2574 opline++; in zend_update_type_info() 2604 opline++; in zend_update_type_info() 3408 return opline->opcode == ZEND_ADD || opline->opcode == ZEND_SUB in is_narrowable_instr() 3409 || opline->opcode == ZEND_MUL || opline->opcode == ZEND_DIV; in is_narrowable_instr() 3576 zend_op *opline; in zend_type_narrowing() local [all …]
|
/PHP-7.1/sapi/phpdbg/ |
H A D | phpdbg_opcode.c | 81 if (opline->extended_value & ZEND_FREE_ON_RETURN) { in phpdbg_decode_input_op() 104 ops, opline, opline->op1, opline->op1_type, ZEND_VM_OP1_FLAGS(flags)); in phpdbg_decode_opline() 108 ops, opline, opline->op2, opline->op2_type, ZEND_VM_OP2_FLAGS(flags)); in phpdbg_decode_opline() 111 switch (opline->opcode) { in phpdbg_decode_opline() 116 decode[3] = phpdbg_decode_op(ops, &opline->result, opline->result_type); in phpdbg_decode_opline() 147 zend_op *opline = (zend_op *) execute_data->opline; in phpdbg_print_opline_ex() local 153 opline->lineno, in phpdbg_print_opline_ex() 154 opline, in phpdbg_print_opline_ex() 161 opline->lineno, in phpdbg_print_opline_ex() 162 opline, in phpdbg_print_opline_ex() [all …]
|
H A D | phpdbg_bp.h | 88 zend_ulong opline; member 96 zend_ulong opline; member 133 PHPDBG_API void phpdbg_set_breakpoint_opline(zend_ulong opline); 134 PHPDBG_API void phpdbg_set_breakpoint_opline_ex(phpdbg_opline_ptr_t opline); 135 …void phpdbg_set_breakpoint_method_opline(const char *class, const char *method, zend_ulong opline); 136 PHPDBG_API void phpdbg_set_breakpoint_function_opline(const char *function, zend_ulong opline); 137 PHPDBG_API void phpdbg_set_breakpoint_file_opline(const char *file, zend_ulong opline);
|
/PHP-7.1/Zend/ |
H A D | zend_vm_execute.h | 1804 opline = EX(opline); 2044 opline = EX(opline); 2707 opline = OP_JMP_ADDR(opline, opline->op2); 2736 opline = OP_JMP_ADDR(opline, opline->op2); 2770 opline = OP_JMP_ADDR(opline, opline->op2); 2808 opline = OP_JMP_ADDR(opline, opline->op2); 2842 opline = OP_JMP_ADDR(opline, opline->op2); 34753 opline = OP_JMP_ADDR(opline, opline->op2); 34782 opline = OP_JMP_ADDR(opline, opline->op2); 34816 opline = OP_JMP_ADDR(opline, opline->op2); [all …]
|
H A D | zend_opcode.c | 482 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_info() local 489 opline++; in zend_update_extended_info() 493 opline->lineno = (opline+1)->lineno; in zend_update_extended_info() 499 opline++; in zend_update_extended_info() 583 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); in pass_two() 606 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); in pass_two() 610 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 620 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op2); in pass_two() 632 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op2); in pass_two() 641 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() [all …]
|
H A D | zend_compile.c | 2081 !zend_is_def_range(opline - 1, opline->op1_type, opline->op1.var)) { in zend_check_live_ranges() 2084 if (!zend_is_def_range(opline - 2, opline->op1_type, opline->op1.var)) { in zend_check_live_ranges() 2085 zend_find_live_range(opline - 1, opline->op1_type, opline->op1.var); in zend_check_live_ranges() 2109 zend_find_live_range(opline, opline->op1_type, opline->op1.var); in zend_check_live_ranges() 2114 !zend_is_def_range(opline - 1, opline->op2_type, opline->op2.var)) { in zend_check_live_ranges() 2117 if (!zend_is_def_range(opline - 2, opline->op2_type, opline->op2.var)) { in zend_check_live_ranges() 2118 zend_find_live_range(opline-1, opline->op2_type, opline->op2.var); in zend_check_live_ranges() 2131 zend_find_live_range(opline, opline->op2_type, opline->op2.var); in zend_check_live_ranges() 2666 opline->result.var = opline->op1.var; in zend_separate_if_call_and_write() 7527 opline->op1_type = opline->op2_type; in zend_compile_encaps_list() [all …]
|
H A D | zend_vm_def.h | 2712 ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); 2723 opline = OP_JMP_ADDR(opline, opline->op2); 2752 opline = OP_JMP_ADDR(opline, opline->op2); 2784 opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); 2786 opline = OP_JMP_ADDR(opline, opline->op2); 2824 opline = OP_JMP_ADDR(opline, opline->op2); 2858 opline = OP_JMP_ADDR(opline, opline->op2); 4128 gen_execute_data->opline = opline + 1; 7301 opline = EX(opline); 7319 ZEND_VM_DISPATCH(opline->opcode, opline); [all …]
|
H A D | zend_compile.h | 36 #define MAKE_NOP(opline) do { \ argument 37 (opline)->op1.num = 0; \ 38 (opline)->op2.num = 0; \ 39 (opline)->result.num = 0; \ 40 (opline)->opcode = ZEND_NOP; \ 41 (opline)->op1_type = IS_UNUSED; \ 42 (opline)->op2_type = IS_UNUSED; \ 43 (opline)->result_type = IS_UNUSED; \ 542 ((char*)(target) - (char*)(opline)) 556 # define OP_JMP_ADDR(opline, node) \ argument [all …]
|