/PHP-7.3/ext/opcache/Optimizer/ |
H A D | nop_removal.c | 44 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal() 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() 66 zend_op *new_opline = op_array->opcodes + new_count; in zend_optimizer_nop_removal() 77 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal() 80 for (opline = op_array->opcodes; opline<end; opline++) { in zend_optimizer_nop_removal() 107 opline_num = &op_array->opcodes[*opline_num].result.opline_num; in zend_optimizer_nop_removal()
|
H A D | dce.c | 325 && var->use_chain == (opline - ctx->op_array->opcodes)) { in try_remove_var_def() 326 zend_op *def_opline = &ctx->op_array->opcodes[def]; in try_remove_var_def() 492 if ((op_array->opcodes[def].result_type == IS_UNUSED) && in dce_live_ranges() 499 if (op_array->opcodes[def].result_type == IS_UNUSED) { in dce_live_ranges() 500 if (op_array->opcodes[def].opcode == ZEND_DO_FCALL) { in dce_live_ranges() 505 && op_array->opcodes[def].result.var == var) { in dce_live_ranges() 517 ZEND_ASSERT(op_array->opcodes[def].result.var == var); in dce_live_ranges() 521 || op_array->opcodes[def].result.var != var in dce_live_ranges() 595 if (op_array->opcodes[i].opcode == ZEND_OP_DATA) { in dce_optimize_op_array() 609 if (op_array->opcodes[i].opcode == ZEND_NEW in dce_optimize_op_array() [all …]
|
H A D | zend_inference.h | 49 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 50 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range); \ 72 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 73 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range) { \ 74 return ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].range.min; \ 96 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 97 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range) { \ 114 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 115 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range) { \ 132 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ [all …]
|
H A D | zend_cfg.c | 44 zend_uchar opcode = opcodes[b->start + b->len - 1].opcode; in zend_mark_reachable() 98 zend_mark_reachable(opcodes, cfg, succ); in zend_mark_reachable() 111 zend_mark_reachable(op_array->opcodes, cfg, blocks + start); in zend_mark_reachable_blocks() 133 && (op_array->opcodes[b->start + 1].opcode == ZEND_JMPZ in zend_mark_reachable_blocks() 134 || op_array->opcodes[b->start + 1].opcode == ZEND_JMPNZ) in zend_mark_reachable_blocks() 154 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() 207 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() 215 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() 223 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() 303 zend_op *opline = op_array->opcodes + i; in zend_build_cfg() [all …]
|
H A D | dfa_pass.c | 150 return (op_array->opcodes[next].opcode == ZEND_JMPZ || in is_smart_branch_inhibiting_nop() 151 op_array->opcodes[next].opcode == ZEND_JMPNZ) && in is_smart_branch_inhibiting_nop() 152 zend_is_smart_branch(op_array->opcodes + target - 1); in is_smart_branch_inhibiting_nop() 205 op_array->opcodes[target] = op_array->opcodes[i]; in zend_ssa_remove_nops() 219 opline = op_array->opcodes + old_end - 1; in zend_ssa_remove_nops() 224 new_opline = op_array->opcodes + target - 1; in zend_ssa_remove_nops() 239 MAKE_NOP(op_array->opcodes + i); in zend_ssa_remove_nops() 457 uint32_t op_num = send_needly - op_array->opcodes; in zend_dfa_optimize_calls() 596 opline = op_array->opcodes + src->start + src->len - 1; in zend_ssa_replace_control_link() 707 opline = op_array->opcodes + op_num; in zend_dfa_optimize_jmps() [all …]
|
H A D | zend_optimizer.c | 628 switch (op_array->opcodes[start].opcode) { in zend_determine_constructor_call() 662 switch (op_array->opcodes[start].opcode) { in zend_optimizer_remove_live_range_ex() 794 n = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const() 1230 opline = op_array->opcodes; in zend_revert_pass_two() 1254 zend_op *old_opcodes = op_array->opcodes; in zend_redo_pass_two() 1259 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two() 1274 opline = op_array->opcodes; in zend_redo_pass_two() 1331 zend_op *old_opcodes = op_array->opcodes; in zend_redo_pass_two_ex() 1336 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two_ex() 1351 opline = op_array->opcodes; in zend_redo_pass_two_ex() [all …]
|
H A D | optimize_temp_vars_5.c | 64 end = op_array->opcodes; in zend_optimize_temporary_variables() 65 opline = &op_array->opcodes[op_array->last - 1]; in zend_optimize_temporary_variables() 78 end = op_array->opcodes; in zend_optimize_temporary_variables() 79 opline = &op_array->opcodes[op_array->last - 1]; in zend_optimize_temporary_variables()
|
H A D | optimize_func_calls.c | 99 && func->op_array.opcodes[func->op_array.num_args].opcode == ZEND_RETURN) { in zend_try_inline_call() 101 zend_op *ret_opline = func->op_array.opcodes + func->op_array.num_args; in zend_try_inline_call() 127 …if (Z_TYPE_P(RT_CONSTANT(&func->op_array.opcodes[i], func->op_array.opcodes[i].op2)) == IS_CONSTAN… in zend_try_inline_call() 153 zend_op *opline = op_array->opcodes; in zend_optimize_func_calls()
|
H A D | block_pass.c | 93 zend_op *opcodes = op_array->opcodes; in strip_leading_nops() local 122 if (op_array->opcodes[i].opcode != ZEND_NOP) { in strip_nops() 124 op_array->opcodes[j] = op_array->opcodes[i]; in strip_nops() 129 && (op_array->opcodes[i+1].opcode == ZEND_JMPZ in strip_nops() 140 MAKE_NOP(op_array->opcodes + j); in strip_nops() 174 opline = op_array->opcodes + block->start; in zend_optimize_block() 941 zend_op *op = op_array->opcodes + b->start; in assemble_code_blocks() 967 efree(op_array->opcodes); in assemble_code_blocks() 968 op_array->opcodes = new_opcodes; in assemble_code_blocks() 1663 opline = op_array->opcodes + block->start; in zend_t_usage() [all …]
|
H A D | zend_call_graph.c | 83 zend_op *opline = op_array->opcodes; in zend_analyze_calls() 286 map[call->caller_init_opline - op_array->opcodes] = call; in zend_build_call_map() 288 map[call->caller_call_opline - op_array->opcodes] = call; in zend_build_call_map() 292 map[call->arg_info[i].opline - op_array->opcodes] = call; in zend_build_call_map()
|
H A D | zend_dump.c | 432 int ssa_var_num = ssa->ops[opline - op_array->opcodes].result_def; in zend_dump_op() 594 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op1_use; in zend_dump_op() 598 } else if (ssa->ops[opline - op_array->opcodes].op1_def < 0) { in zend_dump_op() 607 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op1_def; in zend_dump_op() 651 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op2_use; in zend_dump_op() 655 } else if (ssa->ops[opline - op_array->opcodes].op2_def < 0) { in zend_dump_op() 664 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op2_def; in zend_dump_op() 697 int ssa_var_num = ssa->ops[opline - op_array->opcodes].result_use; in zend_dump_op() 707 int ssa_var_num = ssa->ops[opline - op_array->opcodes].result_def; in zend_dump_op() 990 opline = op_array->opcodes + b->start; in zend_dump_op_array() [all …]
|
H A D | pass2.c | 38 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_pass2() 40 opline = op_array->opcodes; in zend_optimizer_pass2()
|
H A D | compact_vars.c | 38 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars() 86 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars()
|
H A D | escape_analysis.c | 105 zend_op *opline = op_array->opcodes + def; in zend_build_equi_escape_sets() 170 zend_op *opline = op_array->opcodes + def; in is_allocation_def() 235 zend_op *opline = op_array->opcodes + def; in is_local_def() 291 zend_op *opline = op_array->opcodes + use; in is_escape_use() 506 zend_op *opline = op_array->opcodes + use; in zend_ssa_escape_analysis()
|
H A D | zend_inference.c | 121 if (op_array->opcodes[line].opcode == ZEND_OP_DATA) { \ 132 op_array->opcodes[line+1].opcode == ZEND_OP_DATA) { \ 991 opline = op_array->opcodes + line; in zend_inference_calc_range() 1949 if (op_array->opcodes[use].opcode == ZEND_OP_DATA) { in add_usages() 2000 if (op_array->opcodes[use+1].opcode == ZEND_OP_DATA) { in reset_dependent_vars() 2306 zend_op *opline = op_array->opcodes + i; in zend_update_type_info() 3238 switch (op_array->opcodes[j].opcode) { in zend_update_type_info() 3665 zend_op *opline = &op_array->opcodes[use]; in can_convert_to_double() 3795 opline = op_array->opcodes + ssa->vars[v].definition; in zend_type_narrowing() 3839 …zend_op *op = op_array->opcodes + info->ssa.vars[info->ssa.ops[opline - op_array->opcodes].op1_use… in is_recursive_tail_call() [all …]
|
H A D | scdf.c | 124 zend_op *opline = &scdf->op_array->opcodes[i]; in scdf_solve() 164 opline = &scdf->op_array->opcodes[j]; in scdf_solve()
|
H A D | pass3.c | 56 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_pass3() 64 opline = op_array->opcodes; in zend_optimizer_pass3() 368 for(op = &op_array->opcodes[opline->op2.opline_num]; op<end; op++) { in zend_optimizer_pass3()
|
/PHP-7.3/Zend/ |
H A D | zend_vm_gen.php | 896 global $opcodes, $opnames; 1699 …_handler($f, 1, $kind, $opcodes[$num]["op"], $op1, $op2, isset($opcodes[$num]["use"]), $opcodes[$n… 1728 …handler($f, 0, $kind, $opcodes[$num]["op"], "ANY", "ANY", isset($opcodes[$num]["use"]), $opcodes[$… 2366 if (isset($opcodes[$code])) { 2414 if (isset($opcodes[$code])) { 2510 if (isset($opcodes[$code])) { 2527 ksort($opcodes); 2530 foreach ($opcodes as $dsc) { 2538 $opcodes[$code]['use'] = 1; 2605 fputs($f,"\t".(isset($opcodes[$i]["op"])?'"'.$opcodes[$i]["op"].'"':"NULL").",\n"); [all …]
|
H A D | zend_opcode.c | 56 op_array->opcodes = emalloc(initial_ops_size * sizeof(zend_op)); in init_op_array() 381 efree(op_array->opcodes); in destroy_op_array() 425 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_info() 464 CG(zend_lineno) = op_array->opcodes[op_num].lineno; in zend_check_finally_breakout() 472 CG(zend_lineno) = op_array->opcodes[op_num].lineno; in zend_check_finally_breakout() 529 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, sizeof(zend_op)*op_array->last); in pass_two() 537 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in pass_two() 554 opline = op_array->opcodes; in pass_two() 578 zend_check_finally_breakout(op_array, opline - op_array->opcodes, jmp_target); in pass_two() 589 zend_check_finally_breakout(op_array, opline - op_array->opcodes, opline->op1.opline_num); in pass_two() [all …]
|
H A D | zend_generators.c | 101 if (execute_data->opline != execute_data->func->op_array.opcodes) { in zend_generator_cleanup_unfinished_execution() 103 uint32_t op_num = execute_data->opline - execute_data->func->op_array.opcodes - 1; in zend_generator_cleanup_unfinished_execution() 199 op_num = ex->opline - ex->func->op_array.opcodes - 1; in zend_generator_dtor_storage() 224 fast_call = ZEND_CALL_VAR(ex, ex->func->op_array.opcodes[finally_op_end].op1.var); in zend_generator_dtor_storage() 229 ex->opline = &ex->func->op_array.opcodes[finally_op_num]; in zend_generator_dtor_storage() 278 if (execute_data->opline != op_array->opcodes) { in calc_gc_buffer_size() 280 uint32_t i, op_num = execute_data->opline - op_array->opcodes - 1; in calc_gc_buffer_size() 362 if (execute_data->opline != op_array->opcodes) { in zend_generator_get_gc() 363 uint32_t i, op_num = execute_data->opline - op_array->opcodes - 1; in zend_generator_get_gc()
|
/PHP-7.3/sapi/phpdbg/ |
H A D | phpdbg_opcode.h | 36 zend_op *opcodes; member
|
H A D | phpdbg_opcode.c | 73 spprintf(&result, 0, "J%td", OP_JMP_ADDR(opline, op) - ops->opcodes); in phpdbg_decode_input_op() 181 cur->opcodes = op_array->opcodes; in phpdbg_print_opline_ex()
|
/PHP-7.3/ext/opcache/ |
H A D | zend_persist.c | 397 if (zend_shared_alloc_get_xlat_entry(op_array->opcodes)) { in zend_persist_op_array_ex() 422 persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->opcodes); in zend_persist_op_array_ex() 424 op_array->opcodes = persist_ptr; in zend_persist_op_array_ex() 426 zend_op *new_opcodes = zend_accel_memdup(op_array->opcodes, sizeof(zend_op) * op_array->last); in zend_persist_op_array_ex() 449 ((zval*)((char*)(op_array->opcodes + (opline - new_opcodes)) + in zend_persist_op_array_ex() 461 ((zval*)((char*)(op_array->opcodes + (opline - new_opcodes)) + in zend_persist_op_array_ex() 472 opline->op1.jmp_addr = &new_opcodes[opline->op1.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex() 486 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex() 490 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex() 506 efree(op_array->opcodes); in zend_persist_op_array_ex() [all …]
|
H A D | zend_file_cache.c | 386 if (op_array->scope && !IS_SERIALIZED(op_array->opcodes)) { 387 if (UNEXPECTED(zend_shared_alloc_get_xlat_entry(op_array->opcodes))) { 390 SERIALIZE_PTR(op_array->opcodes); 402 zend_shared_alloc_register_xlat_entry(op_array->opcodes, op_array->opcodes); 418 if (!IS_SERIALIZED(op_array->opcodes)) { 426 SERIALIZE_PTR(op_array->opcodes); 427 opline = op_array->opcodes; 1029 UNSERIALIZE_PTR(op_array->opcodes); 1054 if (!IS_UNSERIALIZED(op_array->opcodes)) { 1057 UNSERIALIZE_PTR(op_array->opcodes); [all …]
|
/PHP-7.3/Zend/tests/ |
H A D | bug73338.phpt | 2 Bug #73338: Ensure exceptions in function init opcodes are cleaned properly
|