/php-src/Zend/ |
H A D | zend_verify_type_inference.h | 132 if (opline->op1_use_type in zend_verify_inference_use() 136 …zend_verify_type_inference(EX_VAR(opline->op1.var), opline->op1_use_type, opline->op1_type, execut… in zend_verify_inference_use() 138 if (opline->op2_use_type in zend_verify_inference_use() 140 …zend_verify_type_inference(EX_VAR(opline->op2.var), opline->op2_use_type, opline->op2_type, execut… in zend_verify_inference_use() 144 …end_verify_type_inference(EX_VAR(opline->result.var), opline->result_use_type, opline->result_type… in zend_verify_inference_use() 164 …zend_verify_type_inference(EX_VAR(opline->op1.var), opline->op1_def_type, opline->op1_type, execut… in zend_verify_inference_def() 171 …zend_verify_type_inference(EX_VAR(opline->op2.var), opline->op2_def_type, opline->op2_type, execut… in zend_verify_inference_def() 191 …end_verify_type_inference(EX_VAR(opline->result.var), opline->result_def_type, opline->result_type… in zend_verify_inference_def() 194 if ((opline->opcode == ZEND_RETURN || opline->opcode == ZEND_RETURN_BY_REF) in zend_verify_inference_def() 199 const zend_op *opline = execute_data->prev_execute_data->opline; in zend_verify_inference_def() local [all …]
|
H A D | zend_vm_execute.h | 3333 opline = EX(opline); in ZEND_USER_OPCODE_SPEC_HANDLER() 4463 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_CONST_HANDLER() 4495 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_CONST_HANDLER() 4536 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_CONST_HANDLER() 4568 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_EX_SPEC_CONST_HANDLER() 15031 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_TMPVAR_HANDLER() 15063 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_SPEC_TMPVAR_HANDLER() 15104 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER() 15136 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER() 40525 opline = OP_JMP_ADDR(opline, opline->op2); in ZEND_JMPZ_SPEC_CV_HANDLER() [all …]
|
H A D | zend_opcode.c | 654 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_stmts() local 661 opline++; in zend_update_extended_stmts() 665 opline->lineno = (opline+1)->lineno; in zend_update_extended_stmts() 671 opline++; in zend_update_extended_stmts() 940 opline--; in zend_calc_live_ranges() 1104 ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op1); in pass_two() 1158 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1182 opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); in pass_two() 1187 ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, opline->op1); in pass_two() 1192 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() 3092 opline = OP_JMP_ADDR(opline, opline->op2); 3124 opline = OP_JMP_ADDR(opline, opline->op2); 3165 opline = OP_JMP_ADDR(opline, opline->op2); 3197 opline = OP_JMP_ADDR(opline, opline->op2); 4632 gen_execute_data->opline = opline; 7903 …do_bind_class(RT_CONSTANT(opline, opline->op1), (OP2_TYPE == IS_CONST) ? Z_STR_P(RT_CONSTANT(oplin… 8196 opline = EX(opline); 8215 ZEND_VM_DISPATCH(opline->opcode, opline); 9652 OPLINE = OP_JMP_ADDR(opline, opline->op2); [all …]
|
/php-src/Zend/Optimizer/ |
H A D | pass1.c | 50 …if (zend_optimizer_replace_by_const(op_array, opline + 1, opline->result_type, opline->result.var,… in replace_by_const_or_qm_assign() 51 MAKE_NOP(opline); in replace_by_const_or_qm_assign() 55 SET_UNUSED(opline->op2); in replace_by_const_or_qm_assign() 68 while (opline < end) { in zend_optimizer_pass1() 69 switch (opline->opcode) { in zend_optimizer_pass1() 100 if (opline->op1_type == IS_CONST && opline->op2_type == IS_CONST && in zend_optimizer_pass1() 101 …zend_optimizer_eval_binary_op(&result, opline->opcode, &ZEND_OP1_LITERAL(opline), &ZEND_OP2_LITERA… in zend_optimizer_pass1() 107 if (opline->extended_value == ZEND_CONCAT && opline->op2_type == IS_CONST in zend_optimizer_pass1() 327 COPY_NODE(opline->op1, opline->op2); in zend_optimizer_pass1() 330 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() 94 *opline = *target; in zend_optimizer_pass3() 124 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 155 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 225 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target); in zend_optimizer_pass3() 231 opline->op2.num = 0; in zend_optimizer_pass3() [all …]
|
H A D | compact_literals.c | 293 opline++; in zend_optimizer_compact_literals() 497 opline->op1.constant = map[opline->op1.constant]; in zend_optimizer_compact_literals() 500 opline->op2.constant = map[opline->op2.constant]; in zend_optimizer_compact_literals() 609 opline->result.num = func_slot[opline->op2.constant]; in zend_optimizer_compact_literals() 613 func_slot[opline->op2.constant] = opline->result.num; in zend_optimizer_compact_literals() 647 opline->result.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 651 class_slot[opline->op1.constant] = opline->result.num; in zend_optimizer_compact_literals() 744 opline->op2.num = class_slot[opline->op1.constant]; in zend_optimizer_compact_literals() 748 class_slot[opline->op1.constant] = opline->op2.num; in zend_optimizer_compact_literals() 795 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() 900 if (opline->op1_type == opline->result_type && in zend_optimize_block() 901 opline->op1.var == opline->result.var) { in zend_optimize_block() 930 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() 53 MAKE_NOP(opline); in zend_delete_call_instructions() 75 opline--; in zend_delete_call_instructions() 127 SET_UNUSED(opline->op2); in zend_try_inline_call() 129 MAKE_NOP(opline); in zend_try_inline_call() 165 while (opline < end) { in zend_optimize_func_calls() 166 switch (opline->opcode) { in zend_optimize_func_calls() 185 call_stack[call].opline = opline; in zend_optimize_func_calls() 253 opline->opcode -= 9; in zend_optimize_func_calls() [all …]
|
H A D | zend_optimizer.c | 699 opline++; in zend_optimizer_replace_by_const() 755 …ZEND_SET_OP_JMP_ADDR(opline, opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(… in zend_optimizer_shift_jump() 769 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(… in zend_optimizer_shift_jump() 773 …ZEND_SET_OP_JMP_ADDR(opline, opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_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 …opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_… in zend_optimizer_shift_jump() 1200 opline++; in zend_revert_pass_two() 1317 opline++; in zend_redo_pass_two() 1459 opline++; in zend_redo_pass_two_ex() 1493 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() 126 next = opline + 1; in _zend_dfg_add_use_def_op() 136 next = opline + 1; in _zend_dfg_add_use_def_op() 270 zend_op *opline, *end; in zend_build_dfg() local 278 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 | 804 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 830 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 916 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 932 COPY_NODE(opline->op1, opline->op2); in zend_dfa_optimize_jmps() 1225 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 1247 opline->op1.var = opline->op2.var; in zend_dfa_optimize_op_array() 1292 opline->op2.var = opline->op1.var; in zend_dfa_optimize_op_array() 1643 opline->result.var = opline->op1.var; in zend_dfa_optimize_op_array() 1644 opline->op1_type = opline->op2_type; in zend_dfa_optimize_op_array() 1645 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() 632 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 636 zend_dump_var(op_array, opline->op1_type, EX_VAR_TO_NUM(opline->op1.var)); in zend_dump_op() 654 zend_dump_unused_op(opline, opline->op1, op1_flags); in zend_dump_op() 693 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 697 zend_dump_var(op_array, opline->op2_type, EX_VAR_TO_NUM(opline->op2.var)); in zend_dump_op() 717 zend_dump_unused_op(opline, opline->op2, op2_flags); in zend_dump_op() 1031 const zend_op *opline; in zend_dump_op_array() local 1039 opline++; in zend_dump_op_array() 1099 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-src/ext/opcache/jit/ |
H A D | zend_jit_vm_helpers.c | 83 opline = EX(opline); in zend_jit_leave_nested_func_helper() 199 const zend_op *opline = EX(opline); in zend_jit_undefined_long_key() local 215 const zend_op *opline = EX(opline); in zend_jit_undefined_long_key_ex() local 224 const zend_op *opline = EX(opline); in zend_jit_undefined_string_key() local 258 const zend_op *opline = EX(opline); in zend_jit_func_counter_helper() local 278 const zend_op *opline = EX(opline); in zend_jit_loop_counter_helper() local 627 opline = EX(opline) = op; 956 opline = EX(opline); 1137 opline = EX(opline); 1165 opline = EX(opline); [all …]
|
H A D | zend_jit_trace.c | 1154 opline = p->opline; in zend_jit_trace_find_init_fcall_op() 1560 opline = p->opline; in zend_jit_trace_build_tssa() 1818 opline = p->opline; in zend_jit_trace_build_tssa() 4162 opline = p[1].opline; in zend_jit_trace() 4396 opline = p->opline; in zend_jit_trace() 7326 opline = p->opline; in zend_jit_trace() 7841 opline = p->opline; in zend_jit_dump_trace() 8114 EX(opline) = opline; in zend_jit_trace_hot_root() 8223 opline = EX(opline); in zend_jit_trace_hot_root() 8759 EX(opline) = opline; in zend_jit_trace_exit() [all …]
|
H A D | zend_jit.c | 330 opline++; in zend_jit_needs_call_chain() 393 opline++; in zend_jit_needs_call_chain() 407 opline++; in zend_jit_needs_call_chain() 433 opline++; in zend_jit_needs_call_chain() 1347 && (opline+1)->op1.var == opline->result.var) { in zend_jit_next_is_send_result() 2148 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 2184 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 2214 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 2237 && (opline+1)->op1.var == opline->result.var) { in zend_jit() 2314 && (opline+1)->op1.var == opline->result.var) { in zend_jit() [all …]
|
H A D | zend_jit_internal.h | 70 (((opline)->type == IS_CONST) ? \ 76 ZEND_ADDR_CONST_ZVAL(RT_CONSTANT(opline, (opline)->op)) : \ 83 OP_ADDR(opline, type, op)) 86 OP_ADDR(opline, op1_type, op1) 88 OP_ADDR(opline, op2_type, op2) 244 zend_jit_hash(opline) 668 if (trace->opline == opline + 1) { in zend_jit_trace_get_exit_opline() 671 return OP_JMP_ADDR(opline, opline->op2); in zend_jit_trace_get_exit_opline() 672 } else if (trace->opline == OP_JMP_ADDR(opline, opline->op2)) { in zend_jit_trace_get_exit_opline() 675 return opline + 1; in zend_jit_trace_get_exit_opline() [all …]
|
H A D | zend_jit_ir.c | 2927 memset(&opline, 0, sizeof(opline)); in zend_jit_setup_disasm() 5560 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_add_arrays() 5561 jit_FREE_OP(jit, opline->op2_type, opline->op2, op2_info, opline); in zend_jit_add_arrays() 7264 jit_FREE_OP(jit, opline->op2_type, opline->op2, op2_info, opline); in zend_jit_identical() 7295 jit_FREE_OP(jit, opline->op2_type, opline->op2, op2_info, opline); in zend_jit_identical() 7515 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_bool_jmpznz() 7529 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); in zend_jit_bool_jmpznz() 9534 jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, opline); 13022 jit_FREE_OP(jit, opline->op2_type, opline->op2, op2_info, opline); 13187 jit_FREE_OP(jit, opline->op2_type, opline->op2, op2_info, opline); [all …]
|