/PHP-7.4/ext/opcache/Optimizer/ |
H A D | nop_removal.c | 44 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal() 66 zend_op *new_opline = op_array->opcodes + new_count; in zend_optimizer_nop_removal() 76 op_array->last = new_count; in zend_optimizer_nop_removal() 77 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal() 85 for (j = 0; j < op_array->last_try_catch; j++) { in zend_optimizer_nop_removal() 86 op_array->try_catch_array[j].try_op -= shiftlist[op_array->try_catch_array[j].try_op]; in zend_optimizer_nop_removal() 87 op_array->try_catch_array[j].catch_op -= shiftlist[op_array->try_catch_array[j].catch_op]; in zend_optimizer_nop_removal() 88 if (op_array->try_catch_array[j].finally_op) { in zend_optimizer_nop_removal() 89 op_array->try_catch_array[j].finally_op -= shiftlist[op_array->try_catch_array[j].finally_op]; in zend_optimizer_nop_removal() 90 op_array->try_catch_array[j].finally_end -= shiftlist[op_array->try_catch_array[j].finally_end]; in zend_optimizer_nop_removal() [all …]
|
H A D | zend_optimizer.c | 188 op_array->literals = (zval*)erealloc(op_array->literals, op_array->last_literal * sizeof(zval)); in zend_optimizer_add_literal() 559 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const() 623 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const() 823 func->op_array.filename == op_array->filename) { in zend_optimizer_get_called_func() 841 func->op_array.filename == op_array->filename) { in zend_optimizer_get_called_func() 1098 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two() 1102 op_array->literals, sizeof(zval) * op_array->last_literal); in zend_redo_pass_two() 1104 …op_array->literals = (zval*)(((char*)op_array->opcodes) + ZEND_MM_ALIGNED_SIZE_EX(sizeof(zend_op) … in zend_redo_pass_two() 1173 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two_ex() 1177 op_array->literals, sizeof(zval) * op_array->last_literal); in zend_redo_pass_two_ex() [all …]
|
H A D | compact_vars.c | 30 uint32_t used_vars_len = zend_bitset_len(op_array->last_var + op_array->T); in zend_optimizer_compact_vars() 32 uint32_t *vars_map = do_alloca((op_array->last_var + op_array->T) * sizeof(uint32_t), use_heap2); in zend_optimizer_compact_vars() 67 for (i = op_array->last_var; i < op_array->last_var + op_array->T; i++) { in zend_optimizer_compact_vars() 76 if (num_cvs == op_array->last_var && num_tmps == op_array->T) { in zend_optimizer_compact_vars() 99 if (num_cvs != op_array->last_var) { in zend_optimizer_compact_vars() 109 efree(op_array->vars); in zend_optimizer_compact_vars() 110 op_array->vars = names; in zend_optimizer_compact_vars() 115 efree(op_array->vars); in zend_optimizer_compact_vars() 116 op_array->vars = NULL; in zend_optimizer_compact_vars() 118 op_array->last_var = num_cvs; in zend_optimizer_compact_vars() [all …]
|
H A D | zend_inference.h | 49 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 72 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 96 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 114 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 132 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 230 #define OP1_INFO() (_ssa_op1_info(op_array, ssa, opline)) in DEFINE_SSA_OP_INFO() 231 #define OP2_INFO() (_ssa_op2_info(op_array, ssa, opline)) in DEFINE_SSA_OP_INFO() 234 #define RES_USE_INFO() (_ssa_result_info(op_array, ssa, opline)) in DEFINE_SSA_OP_INFO() 253 int zend_ssa_find_sccs(const zend_op_array *op_array, zend_ssa *ssa); 266 void zend_init_func_return_info(const zend_op_array *op_array, [all …]
|
H A D | zend_optimizer_internal.h | 28 #define ZEND_OP1_LITERAL(opline) (op_array)->literals[(opline)->op1.constant] 55 op.constant = zend_optimizer_add_literal(op_array, &_c); \ 61 op.constant = zend_optimizer_add_literal(op_array, &_c); \ 79 int zend_optimizer_add_literal(zend_op_array *op_array, zval *zv); 87 int zend_optimizer_update_op1_const(zend_op_array *op_array, 90 int zend_optimizer_update_op2_const(zend_op_array *op_array, 93 int zend_optimizer_replace_by_const(zend_op_array *op_array, 101 void zend_optimizer_pass2(zend_op_array *op_array); 104 void zend_optimize_cfg(zend_op_array *op_array, zend_optimizer_ctx *ctx); 105 void zend_optimize_dfa(zend_op_array *op_array, zend_optimizer_ctx *ctx); [all …]
|
H A D | zend_call_graph.c | 34 (void) op_array; in zend_op_array_calc() 44 ZEND_SET_FUNC_INFO(op_array, func_info); in zend_op_array_collect() 57 zend_op_array *op_array; in zend_foreach_op_array() local 74 if (op_array->scope == ce in zend_foreach_op_array() 75 && op_array->type == ZEND_USER_FUNCTION in zend_foreach_op_array() 89 zend_op *opline = op_array->opcodes; in zend_analyze_calls() 90 zend_op *end = opline + op_array->last; in zend_analyze_calls() 197 if (op_array == root) { in zend_is_indirectly_recursive() 201 func_info = ZEND_FUNC_INFO(op_array); in zend_is_indirectly_recursive() 219 zend_op_array *op_array; in zend_analyze_recursion() local [all …]
|
H A D | zend_dump.h | 34 void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, const char *msg, const … 35 void zend_dump_dominators(const zend_op_array *op_array, const zend_cfg *cfg); 36 void zend_dump_dfg(const zend_op_array *op_array, const zend_cfg *cfg, const zend_dfg *dfg); 37 void zend_dump_phi_placement(const zend_op_array *op_array, const zend_ssa *ssa); 38 void zend_dump_variables(const zend_op_array *op_array); 39 void zend_dump_ssa_variables(const zend_op_array *op_array, const zend_ssa *ssa, uint32_t dump_flag… 40 void zend_dump_var(const zend_op_array *op_array, zend_uchar var_type, int var_num); 41 void zend_dump_op_array_name(const zend_op_array *op_array);
|
H A D | compact_literals.c | 68 arg_info = &op_array->arg_info[op_array->num_args]; in class_name_type_hint() 330 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() 341 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() 352 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() 368 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() 387 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() 389 op_array->literals[j+1] = op_array->literals[i+1]; in zend_optimizer_compact_literals() 406 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() 446 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() 465 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals() [all …]
|
H A D | zend_dump.c | 346 zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : var_type), var_num); in zend_dump_ssa_var() 857 if (op_array->function_name) { in zend_dump_op_array_name() 858 if (op_array->scope && op_array->scope->name) { in zend_dump_op_array_name() 859 fprintf(stderr, "%s::%s", op_array->scope->name->val, op_array->function_name->val); in zend_dump_op_array_name() 897 op_array->last, in zend_dump_op_array() 898 op_array->num_args); in zend_dump_op_array() 902 fprintf(stderr, ", vars=%d, tmps=%d", op_array->last_var, op_array->T); in zend_dump_op_array() 957 …fprintf(stderr, " ; %s:%u-%u\n", op_array->filename->val, op_array->line_start, op_array->line_… in zend_dump_op_array() 1030 if (op_array->last_try_catch) { in zend_dump_op_array() 1089 if (op_array->last_try_catch) { in zend_dump_op_array() [all …]
|
H A D | dfa_pass.c | 46 if (op_array->last_try_catch) { in zend_dfa_analyze_op_array() 205 op_array->opcodes[target] = op_array->opcodes[i]; in zend_ssa_remove_nops() 236 if (target != op_array->last) { in zend_ssa_remove_nops() 239 MAKE_NOP(op_array->opcodes + i); in zend_ssa_remove_nops() 273 op_array->try_catch_array[j].try_op -= shiftlist[op_array->try_catch_array[j].try_op]; in zend_ssa_remove_nops() 274 op_array->try_catch_array[j].catch_op -= shiftlist[op_array->try_catch_array[j].catch_op]; in zend_ssa_remove_nops() 276 op_array->try_catch_array[j].finally_op -= shiftlist[op_array->try_catch_array[j].finally_op]; in zend_ssa_remove_nops() 277 op_array->try_catch_array[j].finally_end -= shiftlist[op_array->try_catch_array[j].finally_end]; in zend_ssa_remove_nops() 306 op_array->last = target; in zend_ssa_remove_nops() 698 compress_block(op_array, block); in zend_dfa_optimize_jmps() [all …]
|
H A D | zend_cfg.c | 113 if (op_array->last_try_catch) { in zend_mark_reachable_blocks() 145 op_array->try_catch_array[j].try_op = op_array->try_catch_array[j].catch_op; in zend_mark_reachable_blocks() 147 …zend_mark_reachable(op_array->opcodes, cfg, blocks + block_map[op_array->try_catch_array[j].try_op… in zend_mark_reachable_blocks() 286 for (i = 0; i < op_array->last; i++) { in zend_build_cfg() 287 zend_op *opline = op_array->opcodes + i; in zend_build_cfg() 300 if (i + 1 < op_array->last) { in zend_build_cfg() 343 if (i + 1 < op_array->last) { in zend_build_cfg() 349 if (i + 1 < op_array->last) { in zend_build_cfg() 356 if (i + 1 < op_array->last) { in zend_build_cfg() 441 if (op_array->last_try_catch) { in zend_build_cfg() [all …]
|
H A D | optimize_func_calls.c | 101 && func->op_array.opcodes[func->op_array.num_args].opcode == ZEND_RETURN) { in zend_try_inline_call() 103 zend_op *ret_opline = func->op_array.opcodes + func->op_array.num_args; in zend_try_inline_call() 106 uint32_t i, num_args = func->op_array.num_args; in zend_try_inline_call() 110 && !(func->op_array.fn_flags & ZEND_ACC_STATIC)) { in zend_try_inline_call() 125 if (func->op_array.arg_info[i].pass_by_reference) { in zend_try_inline_call() 135 …if (Z_TYPE_P(RT_CONSTANT(&func->op_array.opcodes[i], func->op_array.opcodes[i].op2)) == IS_CONSTAN… in zend_try_inline_call() 139 } while (i < func->op_array.num_args); in zend_try_inline_call() 161 zend_op *opline = op_array->opcodes; in zend_optimize_func_calls() 162 zend_op *end = opline + op_array->last; in zend_optimize_func_calls() 167 if (op_array->last < 2) { in zend_optimize_func_calls() [all …]
|
H A D | zend_cfg.h | 105 #define CRT_CONSTANT_EX(op_array, opline, node, rt_constants) \ argument 109 CT_CONSTANT_EX(op_array, (node).constant) \ 113 CRT_CONSTANT_EX(op_array, opline, node, (build_flags & ZEND_RT_CONSTANTS)) 120 int zend_build_cfg(zend_arena **arena, const zend_op_array *op_array, uint32_t build_flags, zend_c… 121 void zend_cfg_remark_reachable_blocks(const zend_op_array *op_array, zend_cfg *cfg); 123 int zend_cfg_compute_dominators_tree(const zend_op_array *op_array, zend_cfg *cfg); 124 int zend_cfg_identify_loops(const zend_op_array *op_array, zend_cfg *cfg);
|
H A D | pass1_5.c | 41 zend_op *opline = op_array->opcodes; in zend_optimizer_pass1() 42 zend_op *end = opline + op_array->last; in zend_optimizer_pass1() 44 (op_array == &ctx->script->main_op_array) : 0; in zend_optimizer_pass1() 143 fake_execute_data.func = (zend_function*)op_array; in zend_optimizer_pass1() 195 if (op_array->scope && in zend_optimizer_pass1() 198 ce = op_array->scope; in zend_optimizer_pass1() 205 ce->info.user.filename != op_array->filename)) { in zend_optimizer_pass1() 209 } else if (op_array->scope && in zend_optimizer_pass1() 213 ce = op_array->scope; in zend_optimizer_pass1() 214 } else if (op_array->scope && in zend_optimizer_pass1() [all …]
|
H A D | zend_func_info.h | 45 #define ZEND_FUNC_INFO(op_array) \ argument 46 ((zend_func_info*)((op_array)->reserved[zend_func_info_rid])) 48 #define ZEND_SET_FUNC_INFO(op_array, info) do { \ argument 49 zend_func_info** pinfo = (zend_func_info**)&(op_array)->reserved[zend_func_info_rid]; \
|
H A D | dce.c | 52 zend_op_array *op_array; member 76 zend_op_array *op_array, zend_ssa *ssa, in may_have_side_effects() argument 233 if (op_array->static_variables in may_have_side_effects() 312 return var_num >= ctx->op_array->last_var; in is_var_dead() 490 ctx.op_array = op_array; in dce_optimize_op_array() 513 if (phi->var >= op_array->last_var in dce_optimize_op_array() 534 if (op_array->opcodes[i].opcode == ZEND_OP_DATA) { in dce_optimize_op_array() 545 …} else if (may_have_side_effects(op_array, ssa, &op_array->opcodes[i], &ssa->ops[i], ctx.reorder_d… in dce_optimize_op_array() 546 || zend_may_throw(&op_array->opcodes[i], op_array, ssa) in dce_optimize_op_array() 548 if (op_array->opcodes[i].opcode == ZEND_NEW in dce_optimize_op_array() [all …]
|
H A D | optimize_temp_vars_5.c | 42 void zend_optimize_temporary_variables(zend_op_array *op_array, zend_optimizer_ctx *ctx) in zend_optimize_temporary_variables() argument 44 int T = op_array->T; in zend_optimize_temporary_variables() 45 int offset = op_array->last_var; in zend_optimize_temporary_variables() 63 end = op_array->opcodes; in zend_optimize_temporary_variables() 64 opline = &op_array->opcodes[op_array->last - 1]; in zend_optimize_temporary_variables() 77 end = op_array->opcodes; in zend_optimize_temporary_variables() 78 opline = &op_array->opcodes[op_array->last - 1]; in zend_optimize_temporary_variables() 109 if ((op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) && in zend_optimize_temporary_variables() 186 op_array->T = max + 1; in zend_optimize_temporary_variables()
|
H A D | block_pass.c | 124 op_array->opcodes[j] = op_array->opcodes[i]; in strip_nops() 978 efree(op_array->opcodes); in assemble_code_blocks() 980 op_array->last = len; in assemble_code_blocks() 1414 int var_num = op_array->last_var + op_array->T; in zend_jmp_optimization() 1618 if (op_array->T == 0) { in zend_t_usage() 1624 bitset_len = zend_bitset_len(op_array->last_var + op_array->T); in zend_t_usage() 1692 for (i = op_array->last_var; i< op_array->T; i++) { in zend_t_usage() 1905 if (cfg.blocks_count * (op_array->last_var + op_array->T) > 64 * 1024 * 1024) { in zend_optimize_cfg() 1914 bitset_len = zend_bitset_len(op_array->last_var + op_array->T); in zend_optimize_cfg() 1916 same_t = zend_arena_alloc(&ctx->arena, op_array->last_var + op_array->T); in zend_optimize_cfg() [all …]
|
/PHP-7.4/Zend/ |
H A D | zend_opcode.c | 55 op_array->last = 0; in init_op_array() 61 op_array->T = 0; in init_op_array() 438 if (!op_array->refcount || --(*op_array->refcount) > 0) { in destroy_op_array() 442 efree_size(op_array->refcount, sizeof(*(op_array->refcount))); in destroy_op_array() 581 op_array->live_range = erealloc(op_array->live_range, in emit_live_range_raw() 585 range = &op_array->live_range[op_array->last_live_range - 1]; in emit_live_range_raw() 896 …op_array->vars = (zend_string**) erealloc(op_array->vars, sizeof(zend_string*)*op_array->last_var); in pass_two() 902 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, sizeof(zend_op)*op_array->last); in pass_two() 906 op_array->literals = (zval*)erealloc(op_array->literals, sizeof(zval) * op_array->last_literal); in pass_two() 910 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in pass_two() [all …]
|
H A D | zend_closures.h | 26 #define ZEND_CLOSURE_OBJECT(op_array) \ argument 27 ((zend_object*)((char*)(op_array) - sizeof(zend_object))) 35 ZEND_API void zend_create_closure(zval *res, zend_function *op_array, zend_class_entry *scope, zend… 36 ZEND_API void zend_create_fake_closure(zval *res, zend_function *op_array, zend_class_entry *scope,…
|
H A D | zend_extensions.h | 66 typedef void (*op_array_handler_func_t)(zend_op_array *op_array); 72 typedef void (*op_array_ctor_func_t)(zend_op_array *op_array); 73 typedef void (*op_array_dtor_func_t)(zend_op_array *op_array); 74 typedef size_t (*op_array_persist_calc_func_t)(zend_op_array *op_array); 75 typedef size_t (*op_array_persist_func_t)(zend_op_array *op_array, void *mem); 152 ZEND_API size_t zend_extensions_op_array_persist_calc(zend_op_array *op_array); 153 ZEND_API size_t zend_extensions_op_array_persist(zend_op_array *op_array, void *mem);
|
/PHP-7.4/ext/opcache/ |
H A D | zend_persist.c | 262 if (op_array->refcount && --(*op_array->refcount) == 0) { in zend_persist_op_array_ex() 281 if (op_array->scope) { in zend_persist_op_array_ex() 304 op_array->literals = zend_shared_alloc_get_xlat_entry(op_array->literals); in zend_persist_op_array_ex() 312 op_array->filename = zend_shared_alloc_get_xlat_entry(op_array->filename); in zend_persist_op_array_ex() 343 if (op_array->vars) { in zend_persist_op_array_ex() 344 op_array->vars = zend_shared_alloc_get_xlat_entry(op_array->vars); in zend_persist_op_array_ex() 472 if (op_array->function_name && !IS_ACCEL_INTERNED(op_array->function_name)) { in zend_persist_op_array_ex() 513 …op_array->live_range = zend_shared_memdup_put_free(op_array->live_range, sizeof(zend_live_range) *… in zend_persist_op_array_ex() 529 if (op_array->vars) { in zend_persist_op_array_ex() 531 …op_array->vars = zend_shared_memdup_put_free(op_array->vars, sizeof(zend_string*) * op_array->last… in zend_persist_op_array_ex() [all …]
|
H A D | zend_persist_calc.c | 153 if (op_array->scope && zend_shared_alloc_get_xlat_entry(op_array->opcodes)) { in zend_persist_op_array_calc_ex() 155 if (op_array->function_name) { in zend_persist_op_array_calc_ex() 180 if (op_array->literals) { in zend_persist_op_array_calc_ex() 181 zval *p = op_array->literals; in zend_persist_op_array_calc_ex() 190 zend_shared_alloc_register_xlat_entry(op_array->opcodes, op_array->opcodes); in zend_persist_op_array_calc_ex() 193 if (op_array->function_name) { in zend_persist_op_array_calc_ex() 203 if (op_array->filename) { in zend_persist_op_array_calc_ex() 207 if (op_array->arg_info) { in zend_persist_op_array_calc_ex() 212 num_args = op_array->num_args; in zend_persist_op_array_calc_ex() 235 if (op_array->live_range) { in zend_persist_op_array_calc_ex() [all …]
|
H A D | zend_file_cache.c | 421 ZEND_MAP_PTR_INIT(op_array->static_variables_ptr, &op_array->static_variables); 428 if (op_array->scope) { 444 zend_shared_alloc_register_xlat_entry(op_array->opcodes, op_array->opcodes); 451 p = op_array->literals; 546 if (op_array->vars) { 550 p = op_array->vars; 576 zend_op_array *op_array; local 579 op_array = Z_PTR_P(zv); 1258 if (op_array->vars) { 1262 p = op_array->vars; [all …]
|
/PHP-7.4/sapi/phpdbg/ |
H A D | phpdbg_print.c | 57 zend_op_array* op_array = &(method->op_array); in phpdbg_print_function_helper() local 59 if (op_array) { in phpdbg_print_function_helper() 62 end = op_array->last-1; in phpdbg_print_function_helper() 66 op_array->line_start, in phpdbg_print_function_helper() 67 op_array->line_end, in phpdbg_print_function_helper() 70 op_array->filename ? ZSTR_VAL(op_array->filename) : "unknown", in phpdbg_print_function_helper() 72 op_array->last); in phpdbg_print_function_helper() 75 op_array->line_start, in phpdbg_print_function_helper() 76 op_array->line_end, in phpdbg_print_function_helper() 78 op_array->filename ? ZSTR_VAL(op_array->filename) : "unknown", in phpdbg_print_function_helper() [all …]
|