Home
last modified time | relevance | path

Searched refs:opcode (Results 1 – 25 of 111) sorted by path

12345

/php-src/
H A DUPGRADING.INTERNALS237 added. These opcodes don't create a stack frame, but pass arguments via opcode
/php-src/Zend/Optimizer/
H A Dblock_pass.c215 switch (opline->opcode) { in zend_optimize_block()
450 opline->opcode = in zend_optimize_block()
463 opline->opcode = in zend_optimize_block()
626 opline->opcode = INV_COND(opline->opcode); in zend_optimize_block()
1273 } else if (target->opcode == last_op->opcode && in zend_jmp_optimization()
1277 } else if (target->opcode == INV_COND(last_op->opcode) && in zend_jmp_optimization()
1318 last_op->opcode = INV_COND(last_op->opcode); in zend_jmp_optimization()
1347 } else if (target->opcode == last_op->opcode-3 && in zend_jmp_optimization()
1352 } else if (target->opcode == last_op->opcode && in zend_jmp_optimization()
1358 } else if (target->opcode == INV_EX_COND(last_op->opcode) && in zend_jmp_optimization()
[all …]
H A Dcompact_literals.c177 switch (opline->opcode) { in zend_optimizer_compact_literals()
499 switch (opline->opcode) { in zend_optimizer_compact_literals()
801 if (opline->opcode == ZEND_RECV_INIT) { in zend_optimizer_compact_literals()
810 } else if (opline->opcode != ZEND_RECV) { in zend_optimizer_compact_literals()
H A Dcompact_vars.c46 if (opline->opcode == ZEND_ROPE_INIT) { in zend_optimizer_compact_vars()
H A Ddce.c78 switch (opline->opcode) { in may_have_side_effects()
299 || (opline->opcode == ZEND_ASSIGN in add_operands_to_worklists()
308 || (opline->opcode == ZEND_FE_FETCH_R in add_operands_to_worklists()
355 switch (def_opline->opcode) { in try_remove_var_def()
397 switch (opline->opcode) { in is_free_of_live_var()
418 if (opline->opcode == ZEND_NOP) { in dce_instr()
430 && opline->opcode != ZEND_CASE && opline->opcode != ZEND_CASE_STRICT) { in dce_instr()
454 opline->opcode = ZEND_FREE; in dce_instr()
577 if (op_array->opcodes[i].opcode == ZEND_OP_DATA) { in dce_optimize_op_array()
592 if (op_array->opcodes[i].opcode == ZEND_NEW in dce_optimize_op_array()
[all …]
H A Ddfa_pass.c323 if (opline->opcode == ZEND_NEW) { in opline_supports_assign_contraction()
328 if (opline->opcode == ZEND_DO_ICALL || opline->opcode == ZEND_DO_UCALL in opline_supports_assign_contraction()
329 || opline->opcode == ZEND_DO_FCALL || opline->opcode == ZEND_DO_FCALL_BY_NAME) { in opline_supports_assign_contraction()
337 if (opline->opcode == ZEND_POST_INC || opline->opcode == ZEND_POST_DEC) { in opline_supports_assign_contraction()
349 if (opline->opcode == ZEND_CAST in opline_supports_assign_contraction()
639 switch (opline->opcode) { in zend_ssa_replace_control_link()
772 switch (opline->opcode) { in zend_dfa_optimize_jmps()
790 opline->opcode = ZEND_JMP; in zend_dfa_optimize_jmps()
816 opline->opcode = ZEND_JMP; in zend_dfa_optimize_jmps()
971 opline->opcode = ZEND_JMP; in zend_dfa_optimize_jmps()
[all …]
H A Descape_analysis.c108 if (opline->opcode != ZEND_ASSIGN) { in zend_build_equi_escape_sets()
123 if (opline->opcode != ZEND_QM_ASSIGN) { in zend_build_equi_escape_sets()
156 switch (opline->opcode) { in is_allocation_def()
198 switch (opline->opcode) { in is_allocation_def()
227 switch (opline->opcode) { in is_local_def()
252 switch (opline->opcode) { in is_local_def()
277 switch (opline->opcode) { in is_escape_use()
322 if ((opline-1)->opcode != ZEND_ASSIGN_DIM in is_escape_use()
346 switch (opline->opcode) { in is_escape_use()
367 switch (opline->opcode) { in is_escape_use()
[all …]
H A Dnop_removal.c47 if (opline->opcode == ZEND_JMP && ZEND_OP1_JMP_ADDR(opline) > op_array->opcodes + i) { in zend_optimizer_nop_removal()
51 while (target->opcode == ZEND_NOP) { 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()
H A Doptimize_func_calls.c45 switch (opline->opcode) { in zend_delete_call_instructions()
123 opline->opcode = ZEND_QM_ASSIGN; in zend_try_inline_call()
165 switch (opline->opcode) { in zend_optimize_func_calls()
197 fcall->opcode = ZEND_INIT_FCALL; in zend_optimize_func_calls()
241 if ((opline->opcode == ZEND_FETCH_OBJ_FUNC_ARG || opline->opcode == ZEND_FETCH_DIM_FUNC_ARG) in zend_optimize_func_calls()
248 opline->opcode -= 9; in zend_optimize_func_calls()
262 opline->opcode -= 12; in zend_optimize_func_calls()
277 opline->opcode = ZEND_SEND_VAL; in zend_optimize_func_calls()
313 opline->opcode = ZEND_SEND_REF; in zend_optimize_func_calls()
315 opline->opcode = ZEND_SEND_VAR; in zend_optimize_func_calls()
[all …]
H A Doptimize_temp_vars_5.c81 if (opline->opcode == ZEND_ROPE_END) { in zend_optimize_temporary_variables()
107 (opline->opcode == ZEND_RETURN || in zend_optimize_temporary_variables()
108 opline->opcode == ZEND_GENERATOR_RETURN || in zend_optimize_temporary_variables()
109 opline->opcode == ZEND_RETURN_BY_REF || in zend_optimize_temporary_variables()
110 opline->opcode == ZEND_FREE || in zend_optimize_temporary_variables()
111 opline->opcode == ZEND_FE_FREE)) { in zend_optimize_temporary_variables()
115 if (curr->opcode == ZEND_FAST_CALL) { in zend_optimize_temporary_variables()
118 } else if (curr->opcode != ZEND_FREE && in zend_optimize_temporary_variables()
119 curr->opcode != ZEND_FE_FREE && in zend_optimize_temporary_variables()
159 if (opline->opcode != ZEND_FAST_CALL) { in zend_optimize_temporary_variables()
[all …]
H A Dpass1.c47 opline->opcode = ZEND_QM_ASSIGN; in replace_by_const_or_qm_assign()
63 switch (opline->opcode) { in zend_optimizer_pass1()
184 while (send1_opline->opcode == ZEND_NOP) { in zend_optimizer_pass1()
207 while (init_opline->opcode == ZEND_NOP) { in zend_optimizer_pass1()
230 opline->opcode = ZEND_DECLARE_CONST; in zend_optimizer_pass1()
289 if (opline->opcode == ZEND_JMPZ_EX) { in zend_optimizer_pass1()
290 opline->opcode = ZEND_QM_ASSIGN; in zend_optimizer_pass1()
297 if (opline->opcode == ZEND_JMPNZ_EX) { in zend_optimizer_pass1()
298 opline->opcode = ZEND_QM_ASSIGN; in zend_optimizer_pass1()
314 if (opline->opcode == ZEND_JMPZ) { in zend_optimizer_pass1()
[all …]
H A Dpass3.c68 switch (opline->opcode) { in zend_optimizer_pass3()
74 if (target->opcode == ZEND_JMP) { in zend_optimizer_pass3()
117 if (target->opcode == ZEND_JMP) { in zend_optimizer_pass3()
135 if (target->opcode == ZEND_JMP) { in zend_optimizer_pass3()
140 } else if (target->opcode == opline->opcode && in zend_optimizer_pass3()
146 } else if (target->opcode == INV_COND(opline->opcode) && in zend_optimizer_pass3()
176 } else if (target->opcode == opline->opcode-3 && in zend_optimizer_pass3()
183 } else if (target->opcode == opline->opcode && in zend_optimizer_pass3()
191 } else if (target->opcode == INV_EX_COND(opline->opcode) && in zend_optimizer_pass3()
197 } else if (target->opcode == INV_EX_COND_EX(opline->opcode) && in zend_optimizer_pass3()
[all …]
H A Dsccp.c211 switch (opline->opcode) { in can_replace_op1()
281 switch (opline->opcode) { in can_replace_op2()
677 if (opcode == ZEND_PRE_INC in ct_eval_incdec()
678 || opcode == ZEND_POST_INC in ct_eval_incdec()
880 switch (opline->opcode) { in sccp_visit_instr()
1242 switch (opline->opcode) { in sccp_visit_instr()
1397 if (opline->opcode == ZEND_PRE_INC_OBJ || opline->opcode == ZEND_PRE_DEC_OBJ) { in sccp_visit_instr()
1675 if (opline->opcode != ZEND_SEND_VAL && opline->opcode != ZEND_SEND_VAR) { in sccp_visit_instr()
1833 switch (opline->opcode) { in sccp_mark_feasible_successors()
1863 switch (opline->opcode) { in sccp_mark_feasible_successors()
[all …]
H A Dscdf.c125 if (opline->opcode == ZEND_OP_DATA) { in scdf_solve()
165 if (opline->opcode != ZEND_OP_DATA) { in scdf_solve()
173 if (opline->opcode == ZEND_OP_DATA) { in scdf_solve()
239 if (opline->opcode == ZEND_NOP in cleanup_loop_var_free_block()
H A Dssa_integrity.c114 (i), (zend_get_opcode_name(op_array->opcodes[i].opcode))
H A Dzend_call_graph.c60 switch (opline->opcode) { in zend_analyze_calls()
116 call_info->num_args = ZEND_FLF_NUM_ARGS(opline->opcode); in zend_analyze_calls()
H A Dzend_cfg.c44 uint8_t opcode = opcodes[b->start + b->len - 1].opcode; in zend_mark_reachable() local
45 if (opcode == ZEND_MATCH) { in zend_mark_reachable()
47 } else if (opcode == ZEND_SWITCH_LONG || opcode == ZEND_SWITCH_STRING) { in zend_mark_reachable()
54 if (opcode == ZEND_JMP) { in zend_mark_reachable()
62 opcode == ZEND_YIELD || in zend_mark_reachable()
64 opcode == ZEND_DO_FCALL || in zend_mark_reachable()
65 opcode == ZEND_DO_UCALL || in zend_mark_reachable()
71 if (opcode == ZEND_RECV || in zend_mark_reachable()
72 opcode == ZEND_RECV_INIT) { in zend_mark_reachable()
290 switch (opline->opcode) { in zend_build_cfg()
[all …]
H A Dzend_dfg.c34 && opline->opcode != ZEND_FE_FETCH_R in _zend_dfg_add_use_def_op()
35 && opline->opcode != ZEND_FE_FETCH_RW) in _zend_dfg_add_use_def_op()
44 && opline->opcode != ZEND_RECV) { in _zend_dfg_add_use_def_op()
51 switch (opline->opcode) { in _zend_dfg_add_use_def_op()
282 if (opline->opcode != ZEND_OP_DATA) { in zend_build_dfg()
H A Dzend_dump.c444 const char *name = zend_get_opcode_name(opline->opcode); in zend_dump_op()
445 uint32_t flags = zend_get_opcode_flags(opline->opcode); in zend_dump_op()
463 fprintf(stderr, "OP_%d", (int)opline->opcode); in zend_dump_op()
466 if (ZEND_OP_IS_FRAMELESS_ICALL(opline->opcode)) { in zend_dump_op()
661 opline->opcode == ZEND_SWITCH_LONG in zend_dump_op()
662 || opline->opcode == ZEND_SWITCH_STRING in zend_dump_op()
663 || opline->opcode == ZEND_MATCH in zend_dump_op()
709 if (opline->opcode != ZEND_CATCH || !(opline->extended_value & ZEND_LAST_CATCH)) { in zend_dump_op()
H A Dzend_inference.c801 switch (opcode) { in zend_inference_calc_binary_op_range()
2277 switch (opcode) { in binary_op_result_type()
2721 if (opline->opcode == ZEND_COALESCE || opline->opcode == ZEND_JMP_SET) { in _zend_update_type_info()
3640 uint8_t opcode; in _zend_update_type_info() local
3648 opcode = op_array->opcodes[j].opcode; in _zend_update_type_info()
3655 opcode = ssa_opcodes[j]->opcode; in _zend_update_type_info()
3657 switch (opcode) { in _zend_update_type_info()
3743 opline->opcode != ZEND_FETCH_DIM_R && opline->opcode != ZEND_FETCH_DIM_IS in _zend_update_type_info()
4271 return opline->opcode == ZEND_ADD || opline->opcode == ZEND_SUB in is_narrowable_instr()
4272 || opline->opcode == ZEND_MUL || opline->opcode == ZEND_DIV; in is_narrowable_instr()
[all …]
H A Dzend_optimizer.c223 opline->opcode = ZEND_FREE; in zend_optimizer_convert_to_free_op1()
282 switch (opline->opcode) { in zend_optimizer_update_op1_const()
284 switch ((opline-1)->opcode) { in zend_optimizer_update_op1_const()
445 switch (opline->opcode) { in zend_optimizer_update_op2_const()
632 switch (opline->opcode) { in zend_optimizer_replace_by_const()
685 } while (opline->opcode != ZEND_RETURN && opline->opcode != ZEND_RETURN_BY_REF); in zend_optimizer_replace_by_const()
708 switch (new_opline->opcode) { in zend_optimizer_migrate_jump()
753 switch (opline->opcode) { in zend_optimizer_shift_jump()
896 switch (opline->opcode) { in zend_optimizer_get_called_func()
1210 switch (opline->opcode) { in zend_redo_pass_two()
[all …]
H A Dzend_optimizer_internal.h77 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()
86 zend_result zend_optimizer_eval_binary_op(zval *result, uint8_t opcode, zval *op1, zval *op2);
87 zend_result zend_optimizer_eval_unary_op(zval *result, uint8_t opcode, zval *op1);
H A Dzend_ssa.c196 if (op->opcode == ZEND_POST_DEC) { in find_adjusted_tmp_var()
201 } else if (op->opcode == ZEND_POST_INC) { in find_adjusted_tmp_var()
206 } else if (op->opcode == ZEND_ADD) { in find_adjusted_tmp_var()
222 } else if (op->opcode == ZEND_SUB) { in find_adjusted_tmp_var()
258 switch (opline->opcode) { in place_essa_pis()
295 ((opline-1)->opcode == ZEND_IS_EQUAL || in place_essa_pis()
402 if((opline-1)->opcode == ZEND_IS_EQUAL) { in place_essa_pis()
557 && opline->opcode != ZEND_RECV) { in _zend_ssa_rename_op()
562 switch (opline->opcode) { in _zend_ssa_rename_op()
855 if (opline->opcode != ZEND_OP_DATA) { in zend_ssa_rename()
[all …]
H A Dzend_ssa.h222 if (opline->opcode == ZEND_ASSIGN in zend_ssa_is_no_val_use()
223 || opline->opcode == ZEND_UNSET_CV in zend_ssa_is_no_val_use()
224 || opline->opcode == ZEND_BIND_GLOBAL in zend_ssa_is_no_val_use()
225 || opline->opcode == ZEND_BIND_STATIC) { in zend_ssa_is_no_val_use()
228 if (opline->opcode == ZEND_FE_FETCH_R || opline->opcode == ZEND_FE_FETCH_RW) { in zend_ssa_is_no_val_use()
232 && opline->opcode != ZEND_ADD_ARRAY_ELEMENT in zend_ssa_is_no_val_use()
233 && opline->opcode != ZEND_ADD_ARRAY_UNPACK) { in zend_ssa_is_no_val_use()
/php-src/Zend/
H A DREADME.md33 `ZEND_VM` architecture allows specializing opcode handlers according to
42 opcode handlers and helpers. The typical opcode handler template looks like
52 `<OPCODE-NUMBER>` is a opcode number (0, 1, ...)
53 `<OPCODE>` is an opcode name (ZEN_NOP, ZEND_ADD, :)
59 same as in old `zend_execute.c`, but now it uses macros to access opcode
124 `zend_vm_opcodes.h` and `zend_vm_execute.h`. The first file is a list of opcode
129 different opcode threading model using `--with-vm-kind=CALL|SWITCH|GOTO|HYBRID`.
130 You can disable opcode specialization using `--without-specializer`.

Completed in 144 milliseconds

12345