/PHP-7.2/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 opline->op1.var == opline->result.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 | 55 zend_op *opline; in zend_optimizer_pass3() local 109 COPY_NODE(opline->op1, opline->op2); in zend_optimizer_pass3() 156 opline++; in zend_optimizer_pass3() 168 if (ZEND_OP1_JMP_ADDR(opline) == opline + 1) { in zend_optimizer_pass3() 229 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target + 1); in zend_optimizer_pass3() 235 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target + 1); in zend_optimizer_pass3() 256 if (ZEND_OP2_JMP_ADDR(opline) == opline + 1) { in zend_optimizer_pass3() 257 if (opline->op1.var == opline->result.var) { in zend_optimizer_pass3() 294 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, new_target); in zend_optimizer_pass3() 399 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() 77 …if (zend_optimizer_eval_binary_op(&result, opline->opcode, &ZEND_OP1_LITERAL(opline), &ZEND_OP2_LI… in zend_optimizer_pass1() 81 MAKE_NOP(opline); in zend_optimizer_pass1() 98 …if (zend_optimizer_replace_by_const(op_array, opline + 1, opline->result_type, opline->result.var,… in zend_optimizer_pass1() 99 MAKE_NOP(opline); in zend_optimizer_pass1() 125 MAKE_NOP(opline); in zend_optimizer_pass1() 224 MAKE_NOP(opline); in zend_optimizer_pass1() 251 MAKE_NOP(opline); in zend_optimizer_pass1() 294 (opline - 1)->result.var == opline->op1.var) { in zend_optimizer_pass1() 581 MAKE_NOP(opline); 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 | block_pass.c | 80 #define SET_VAR_SOURCE(opline) Tsource[VAR_NUM(opline->result.var)] = opline argument 186 COPY_NODE(opline->result, opline->op1); in zend_optimize_block() 207 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 215 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 469 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 604 (opline->result_type == opline->op1_type && in zend_optimize_block() 727 COPY_NODE(opline->op1, opline->op2); in zend_optimize_block() 859 if (opline->op1_type == opline->result_type && in zend_optimize_block() 860 opline->op1.var == opline->result.var) { in zend_optimize_block() 1035 opline->op2.num = map[opline->op2.num]; in assemble_code_blocks() [all …]
|
H A D | zend_optimizer.c | 510 opline->op2.num = map[opline->op2.num]; in zend_optimizer_remove_live_range() 718 opline++; in zend_optimizer_replace_by_const() 775 …ZEND_SET_OP_JMP_ADDR(opline, opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(… in zend_optimizer_shift_jump() 778 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump() 789 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump() 796 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump() 806 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump() 1089 opline++; in zend_revert_pass_two() 1107 opline++; in zend_redo_pass_two() 1134 opline++; in zend_redo_pass_two_ex() [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(opline->result.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_inference.h | 42 if (opline->opN##_type == IS_CONST) { \ 46 return (opline->opN##_type != IS_UNUSED && \ 58 if (opline->opN##_type == IS_CONST) { \ 69 } else if (opline->opN##_type != IS_UNUSED && \ 82 if (opline->opN##_type == IS_CONST) { \ 93 } else if (opline->opN##_type != IS_UNUSED && \ 106 if (opline->opN##_type == IS_CONST) { \ 111 } else if (opline->opN##_type != IS_UNUSED && \ 124 if (opline->opN##_type == IS_CONST) { \ 129 } else if (opline->opN##_type != IS_UNUSED && \ [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) { in zend_optimizer_compact_vars() 42 if (opline->op2_type == IS_CV) { in zend_optimizer_compact_vars() 45 if (opline->result_type == IS_CV) { in zend_optimizer_compact_vars() 70 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() local 71 if (opline->op1_type == IS_CV) { in zend_optimizer_compact_vars() 72 opline->op1.var = NUM_VAR(cv_map[VAR_NUM(opline->op1.var)]); in zend_optimizer_compact_vars() 76 if (opline->op2_type == IS_CV) { in zend_optimizer_compact_vars() 77 opline->op2.var = NUM_VAR(cv_map[VAR_NUM(opline->op2.var)]); in zend_optimizer_compact_vars() 81 if (opline->result_type == IS_CV) { in zend_optimizer_compact_vars() [all …]
|
H A D | dfa_pass.c | 338 return opline->op1_type != IS_CV || opline->op1.var != cv_var; in opline_supports_assign_contraction() 343 return (opline->op1_type != IS_CV || opline->op1.var != cv_var) in opline_supports_assign_contraction() 344 && (opline->op2_type != IS_CV || opline->op2.var != cv_var); in opline_supports_assign_contraction() 351 return opline->op1_type != IS_CV || opline->op1.var != cv_var; in opline_supports_assign_contraction() 530 opline->op1.num = opline->op2.num; in zend_dfa_optimize_jmps() 762 opline->result_type = opline->op1_type; in zend_dfa_optimize_op_array() 763 opline->result.var = opline->op1.var; in zend_dfa_optimize_op_array() 764 opline->op1_type = opline->op2_type; in zend_dfa_optimize_op_array() 765 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 852 opline->result_type = opline->op1_type; in zend_dfa_optimize_op_array() [all …]
|
H A D | compact_literals.c | 119 zend_op *opline, *end; in zend_optimizer_compact_literals() local 157 opline->op1, in zend_optimizer_compact_literals() 171 opline->op1, in zend_optimizer_compact_literals() 197 opline->op1, in zend_optimizer_compact_literals() 217 opline->op2, in zend_optimizer_compact_literals() 253 opline->op1, in zend_optimizer_compact_literals() 276 opline->op1, in zend_optimizer_compact_literals() 317 opline++; in zend_optimizer_compact_literals() 524 opline->op1.constant = map[opline->op1.constant]; in zend_optimizer_compact_literals() 527 opline->op2.constant = map[opline->op2.constant]; in zend_optimizer_compact_literals() [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() 50 zend_op *target = ZEND_OP1_JMP_ADDR(opline) - 1; in zend_optimizer_nop_removal() 55 if (target == opline) { in zend_optimizer_nop_removal() 57 opline->opcode = ZEND_NOP; in zend_optimizer_nop_removal() 62 if (opline->opcode == ZEND_NOP) { in zend_optimizer_nop_removal() 68 *new_opline = *opline; in zend_optimizer_nop_removal() 69 zend_optimizer_migrate_jump(op_array, new_opline, opline); in zend_optimizer_nop_removal() 80 for (opline = op_array->opcodes; opline<end; opline++) { in zend_optimizer_nop_removal() [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() 68 switch (opline->opcode) { in zend_build_dfg() 152 if (opline->op2_type == IS_CV) { in zend_build_dfg() 154 switch (opline->opcode) { in zend_build_dfg() 182 if (opline->opcode == ZEND_FE_FETCH_R || opline->opcode == ZEND_FE_FETCH_RW) { 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() 554 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 558 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 576 zend_dump_unused_op(opline, opline->op1, op1_flags); in zend_dump_op() 611 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 615 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 633 zend_dump_unused_op(opline, opline->op2, op2_flags); in zend_dump_op() 638 if (opline->opcode != ZEND_CATCH || !opline->result.num) { in zend_dump_op() 945 opline++; in zend_dump_op_array() 1008 while (opline < end) { in zend_dump_op_array() [all …]
|
H A D | dce.c | 76 switch (opline->opcode) { in may_have_side_effects() 384 opline->opcode = ZEND_FREE; in dce_instr() 411 switch (opline->opcode) { in simplify_jumps() 434 switch (opline->opcode) { in simplify_jumps() 455 switch (opline->opcode) { in simplify_jumps() 460 opline->op1.num = opline->op2.num; in simplify_jumps() 463 MAKE_NOP(opline); in simplify_jumps() 471 opline->op1.num = opline->op2.num; in simplify_jumps() 474 MAKE_NOP(opline); in simplify_jumps() 489 opline->op1.num = opline->op2.num; in simplify_jumps() [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 83 zend_op *opline, 86 zend_op *opline, 89 zend_op *opline, 110 zend_script *script, zend_op_array *op_array, zend_op *opline, zend_bool rt_constants); 112 void zend_optimizer_migrate_jump(zend_op_array *op_array, zend_op *new_opline, zend_op *opline); 113 void zend_optimizer_shift_jump(zend_op_array *op_array, zend_op *opline, uint32_t *shiftlist);
|
H A D | zend_ssa.c | 176 zend_op *op = opline; in find_adjusted_tmp_var() 274 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 285 op_array, build_flags, opline, (opline-1)->op1.var, &val2); in place_essa_pis() 292 op_array, build_flags, opline, (opline-1)->op2.var, &val1); in place_essa_pis() 422 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 444 opline->op1.var == (opline-1)->result.var && in place_essa_pis() 456 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV) { in place_essa_pis() 471 opline->op1.var == (opline-1)->result.var) { in place_essa_pis() 508 opline->op1.var == (opline-1)->result.var && (opline-1)->op1_type == IS_CV && in place_essa_pis() 563 for (; opline < end; opline++) { in zend_ssa_rename() [all …]
|
H A D | sccp.c | 143 switch (opline->opcode) { in can_replace_op1() 219 switch (opline->opcode) { in can_replace_op2() 245 MAKE_NOP(opline); in try_replace_op1() 257 COPY_NODE(opline->op1, opline->op2); in try_replace_op1() 271 COPY_NODE(opline->op1, opline->op2); in try_replace_op1() 281 MAKE_NOP(opline); in try_replace_op1() 296 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target_opline); in try_replace_op1() 308 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, target_opline); in try_replace_op1() 877 switch (opline->opcode) { in sccp_visit_instr() 1264 zend_op *opline = call->arg_info[i].opline; in sccp_visit_instr() local [all …]
|
H A D | zend_cfg.c | 306 switch(opline->opcode) { in zend_build_cfg() 357 BB_START(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes); in zend_build_cfg() 366 BB_START(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes); in zend_build_cfg() 372 BB_START(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes); in zend_build_cfg() 373 BB_START(ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); in zend_build_cfg() 385 BB_START(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes); in zend_build_cfg() 390 BB_START(ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); in zend_build_cfg() 398 BB_START(ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); in zend_build_cfg() 403 BB_START(OP_JMP_ADDR(opline, opline->op2) - op_array->opcodes); in zend_build_cfg() 414 BB_START(ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); in zend_build_cfg() [all …]
|
H A D | zend_inference.c | 852 zend_op *opline; in zend_inference_calc_range() local 1008 op_array, ssa, opline, &ssa->ops[line], opline->opcode, tmp); in zend_inference_calc_range() 1363 opline++; in zend_inference_calc_range() 1390 opline++; in zend_inference_calc_range() 2287 opline--; in zend_update_type_info() 2686 opline++; in zend_update_type_info() 2716 opline++; in zend_update_type_info() 3553 return opline->opcode == ZEND_ADD || opline->opcode == ZEND_SUB in is_narrowable_instr() 3554 || opline->opcode == ZEND_MUL || opline->opcode == ZEND_DIV; in is_narrowable_instr() 3721 zend_op *opline; in zend_type_narrowing() local [all …]
|
/PHP-7.2/sapi/phpdbg/ |
H A D | phpdbg_opcode.c | 103 if (opline->extended_value) { in phpdbg_decode_opline() 109 ops, opline, opline->op1, opline->op1_type, ZEND_VM_OP1_FLAGS(flags)); in phpdbg_decode_opline() 113 ops, opline, opline->op2, opline->op2_type, ZEND_VM_OP2_FLAGS(flags)); in phpdbg_decode_opline() 116 switch (opline->opcode) { in phpdbg_decode_opline() 121 decode[3] = phpdbg_decode_op(ops, &opline->result, opline->result_type); in phpdbg_decode_opline() 152 zend_op *opline = (zend_op *) execute_data->opline; in phpdbg_print_opline_ex() local 158 opline->lineno, in phpdbg_print_opline_ex() 159 opline, in phpdbg_print_opline_ex() 166 opline->lineno, in phpdbg_print_opline_ex() 167 opline, in phpdbg_print_opline_ex() [all …]
|
/PHP-7.2/Zend/ |
H A D | zend_opcode.c | 492 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_info() local 499 opline++; in zend_update_extended_info() 503 opline->lineno = (opline+1)->lineno; in zend_update_extended_info() 509 opline++; in zend_update_extended_info() 593 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); in pass_two() 616 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); in pass_two() 620 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 630 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op2); in pass_two() 651 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 669 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() [all …]
|
H A D | zend_vm_execute.h | 1815 opline = EX(opline); 2059 opline = EX(opline); 2728 opline = OP_JMP_ADDR(opline, opline->op2); 2757 opline = OP_JMP_ADDR(opline, opline->op2); 2791 opline = OP_JMP_ADDR(opline, opline->op2); 2829 opline = OP_JMP_ADDR(opline, opline->op2); 2863 opline = OP_JMP_ADDR(opline, opline->op2); 33165 opline = OP_JMP_ADDR(opline, opline->op2); 33194 opline = OP_JMP_ADDR(opline, opline->op2); 33228 opline = OP_JMP_ADDR(opline, opline->op2); [all …]
|
H A D | zend_compile.c | 2076 !zend_is_def_range(opline - 1, opline->op1_type, opline->op1.var)) { in zend_check_live_ranges() 2079 if (!zend_is_def_range(opline - 2, opline->op1_type, opline->op1.var)) { in zend_check_live_ranges() 2080 zend_find_live_range(opline - 1, opline->op1_type, opline->op1.var); in zend_check_live_ranges() 2106 zend_find_live_range(opline, opline->op1_type, opline->op1.var); in zend_check_live_ranges() 2111 !zend_is_def_range(opline - 1, opline->op2_type, opline->op2.var)) { in zend_check_live_ranges() 2114 if (!zend_is_def_range(opline - 2, opline->op2_type, opline->op2.var)) { in zend_check_live_ranges() 2115 zend_find_live_range(opline-1, opline->op2_type, opline->op2.var); in zend_check_live_ranges() 2128 zend_find_live_range(opline, opline->op2_type, opline->op2.var); in zend_check_live_ranges() 2665 opline->result.var = opline->op1.var; in zend_separate_if_call_and_write() 7887 opline->op1_type = opline->op2_type; in zend_compile_encaps_list() [all …]
|
H A D | zend_vm_def.h | 2507 ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); 2518 opline = OP_JMP_ADDR(opline, opline->op2); 2547 opline = OP_JMP_ADDR(opline, opline->op2); 2579 opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); 2581 opline = OP_JMP_ADDR(opline, opline->op2); 2619 opline = OP_JMP_ADDR(opline, opline->op2); 2653 opline = OP_JMP_ADDR(opline, opline->op2); 3956 gen_execute_data->opline = opline + 1; 7126 opline = EX(opline); 7144 ZEND_VM_DISPATCH(opline->opcode, opline); [all …]
|