Home
last modified time | relevance | path

Searched refs:op_array (Results 1 – 25 of 92) sorted by relevance

1234

/PHP-8.2/Zend/
H A Dzend_opcode.c57 op_array->last = 0; in init_op_array()
63 op_array->T = 0; in init_op_array()
540 if (!op_array->refcount || --(*op_array->refcount) > 0) { in destroy_op_array()
544 efree_size(op_array->refcount, sizeof(*(op_array->refcount))); in destroy_op_array()
698 op_array->live_range = erealloc(op_array->live_range, in emit_live_range_raw()
702 range = &op_array->live_range[op_array->last_live_range - 1]; in emit_live_range_raw()
1026op_array->vars = (zend_string**) erealloc(op_array->vars, sizeof(zend_string*)*op_array->last_var); in pass_two()
1032 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, sizeof(zend_op)*op_array->last); in pass_two()
1036 op_array->literals = (zval*)erealloc(op_array->literals, sizeof(zval) * op_array->last_literal); in pass_two()
1040 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in pass_two()
[all …]
/PHP-8.2/Zend/Optimizer/
H A Dnop_removal.c43 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal()
65 zend_op *new_opline = op_array->opcodes + new_count; in zend_optimizer_nop_removal()
75 op_array->last = new_count; in zend_optimizer_nop_removal()
76 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal()
79 for (opline = op_array->opcodes; opline<end; opline++) { in zend_optimizer_nop_removal()
84 for (j = 0; j < op_array->last_try_catch; j++) { in zend_optimizer_nop_removal()
85 op_array->try_catch_array[j].try_op -= shiftlist[op_array->try_catch_array[j].try_op]; in zend_optimizer_nop_removal()
86 op_array->try_catch_array[j].catch_op -= shiftlist[op_array->try_catch_array[j].catch_op]; in zend_optimizer_nop_removal()
87 if (op_array->try_catch_array[j].finally_op) { in zend_optimizer_nop_removal()
88 op_array->try_catch_array[j].finally_op -= shiftlist[op_array->try_catch_array[j].finally_op]; in zend_optimizer_nop_removal()
[all …]
H A Dzend_optimizer.c237 op_array->literals = (zval*)erealloc(op_array->literals, op_array->last_literal * sizeof(zval)); in zend_optimizer_add_literal()
626 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const()
644 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const()
801 || (op_array && ce->info.user.filename == op_array->filename))) { in zend_optimizer_get_class_entry()
805 if (op_array && op_array->scope && zend_string_equals_ci(op_array->scope->name, lcname)) { in zend_optimizer_get_class_entry()
843 func->op_array.filename == op_array->filename) { in zend_optimizer_get_called_func()
861 func->op_array.filename == op_array->filename) { in zend_optimizer_get_called_func()
1113 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two()
1117 op_array->literals, sizeof(zval) * op_array->last_literal); in zend_redo_pass_two()
1221 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two_ex()
[all …]
H A Dcompact_vars.c30 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()
37 for (i = 0; i < op_array->last; i++) { 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()
[all …]
H A Ddfa_pass.c162 op_array->opcodes[target] = op_array->opcodes[i]; in zend_ssa_remove_nops()
252 op_array->last = target; in zend_ssa_remove_nops()
1359 op_array, ssa, &op_array->opcodes[ssa->vars[src_var].definition], in zend_dfa_optimize_op_array()
1398 && op_array->opcodes[op_2].op1.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1414 && op_array->opcodes[op_2].op1.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1430 && op_array->opcodes[op_2].op2.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1438 op_array->opcodes[op_2].op1_type = op_array->opcodes[op_2].op2_type; in zend_dfa_optimize_op_array()
1439 op_array->opcodes[op_2].op1.var = op_array->opcodes[op_2].op2.var; in zend_dfa_optimize_op_array()
1519 op_array, ssa, &op_array->opcodes[ssa->vars[src_var].definition], in zend_dfa_optimize_op_array()
1592 op_array->opcodes[op_2].op1_type = op_array->opcodes[op_2].op2_type; in zend_dfa_optimize_op_array()
[all …]
H A Dzend_optimizer_internal.h28 #define ZEND_OP1_LITERAL(opline) (op_array)->literals[(opline)->op1.constant]
30 #define ZEND_OP2_LITERAL(opline) (op_array)->literals[(opline)->op2.constant]
55 op.constant = zend_optimizer_add_literal(op_array, &_c); \
61 op.constant = zend_optimizer_add_literal(op_array, &_c); \
80 int zend_optimizer_add_literal(zend_op_array *op_array, zval *zv);
90 bool zend_optimizer_update_op1_const(zend_op_array *op_array,
93 bool zend_optimizer_update_op2_const(zend_op_array *op_array,
96 bool zend_optimizer_replace_by_const(zend_op_array *op_array,
110 void zend_optimize_cfg(zend_op_array *op_array, zend_optimizer_ctx *ctx);
111 void zend_optimize_dfa(zend_op_array *op_array, zend_optimizer_ctx *ctx);
[all …]
H A Dzend_dump.h34 ZEND_API void zend_dump_op_array(const zend_op_array *op_array, uint32_t dump_flags, const char *ms…
35 ZEND_API void zend_dump_op(const zend_op_array *op_array, const zend_basic_block *b, const zend_op …
36 ZEND_API void zend_dump_op_line(const zend_op_array *op_array, const zend_basic_block *b, const zen…
37 void zend_dump_dominators(const zend_op_array *op_array, const zend_cfg *cfg);
38 void zend_dump_dfg(const zend_op_array *op_array, const zend_cfg *cfg, const zend_dfg *dfg);
39 void zend_dump_phi_placement(const zend_op_array *op_array, const zend_ssa *ssa);
40 void zend_dump_variables(const zend_op_array *op_array);
41 void zend_dump_ssa_variables(const zend_op_array *op_array, const zend_ssa *ssa, uint32_t dump_flag…
42 ZEND_API void zend_dump_ssa_var(const zend_op_array *op_array, const zend_ssa *ssa, int ssa_var_num…
43 ZEND_API void zend_dump_var(const zend_op_array *op_array, zend_uchar var_type, int var_num);
[all …]
H A Dzend_inference.h131 #define OP1_HAS_RANGE() (_ssa_op1_has_range (op_array, ssa, opline, ssa_op))
132 #define OP1_MIN_RANGE() (_ssa_op1_min_range (op_array, ssa, opline, ssa_op))
133 #define OP1_MAX_RANGE() (_ssa_op1_max_range (op_array, ssa, opline, ssa_op))
136 #define OP2_HAS_RANGE() (_ssa_op2_has_range (op_array, ssa, opline, ssa_op))
196 #define OP1_INFO() (_ssa_op1_info(op_array, ssa, opline, ssa_op)) in DEFINE_SSA_OP_INFO()
197 #define OP2_INFO() (_ssa_op2_info(op_array, ssa, opline, ssa_op)) in DEFINE_SSA_OP_INFO()
200 #define RES_USE_INFO() (_ssa_result_info(op_array, ssa, opline, ssa_op)) in DEFINE_SSA_OP_INFO()
201 #define OP1_DEF_INFO() (_ssa_op1_def_info(op_array, ssa, opline, ssa_op)) in DEFINE_SSA_OP_INFO()
202 #define OP2_DEF_INFO() (_ssa_op2_def_info(op_array, ssa, opline, ssa_op)) in DEFINE_SSA_OP_INFO()
219 ZEND_API void zend_ssa_find_sccs(const zend_op_array *op_array, zend_ssa *ssa);
[all …]
H A Dcompact_literals.c56 arg_info = &op_array->arg_info[op_array->num_args]; in type_num_classes()
323 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
335 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
347 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
363 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
381 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
383 op_array->literals[j+1] = op_array->literals[i+1]; in zend_optimizer_compact_literals()
403 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
430 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
450 op_array->literals[j] = op_array->literals[i]; in zend_optimizer_compact_literals()
[all …]
H A Dzend_dump.c371 zend_dump_var(op_array, (var_num < op_array->last_var ? IS_CV : var_type), var_num); in zend_dump_ssa_var()
909 if (op_array->function_name) { in zend_dump_op_array_name()
910 if (op_array->scope && op_array->scope->name) { in zend_dump_op_array_name()
911 fprintf(stderr, "%s::%s", op_array->scope->name->val, op_array->function_name->val); in zend_dump_op_array_name()
946 op_array->last, in zend_dump_op_array()
947 op_array->num_args); in zend_dump_op_array()
948 fprintf(stderr, ", vars=%d, tmps=%d", op_array->last_var, op_array->T); in zend_dump_op_array()
998 …fprintf(stderr, " ; %s:%u-%u\n", op_array->filename->val, op_array->line_start, op_array->line… in zend_dump_op_array()
1061 if (op_array->last_try_catch) { in zend_dump_op_array()
1121 if (op_array->last_try_catch) { in zend_dump_op_array()
[all …]
H A Dzend_cfg.c115 if (op_array->last_try_catch) { in zend_mark_reachable_blocks()
147 op_array->try_catch_array[j].try_op = op_array->try_catch_array[j].catch_op; in zend_mark_reachable_blocks()
149 …zend_mark_reachable(op_array->opcodes, cfg, blocks + block_map[op_array->try_catch_array[j].try_op… in zend_mark_reachable_blocks()
288 for (i = 0; i < op_array->last; i++) { in zend_build_cfg()
289 zend_op *opline = op_array->opcodes + i; in zend_build_cfg()
301 if (i + 1 < op_array->last) { in zend_build_cfg()
354 if (i + 1 < op_array->last) { in zend_build_cfg()
360 if (i + 1 < op_array->last) { in zend_build_cfg()
415 !op_array->function_name) { in zend_build_cfg()
447 if (op_array->last_try_catch) { in zend_build_cfg()
[all …]
H A Doptimize_func_calls.c83 && !(func->op_array.fn_flags & (ZEND_ACC_TRAIT_CLONE)) in zend_try_inline_call()
85 && func->op_array.opcodes[func->op_array.num_args].opcode == ZEND_RETURN) { in zend_try_inline_call()
87 zend_op *ret_opline = func->op_array.opcodes + func->op_array.num_args; in zend_try_inline_call()
90 uint32_t i, num_args = func->op_array.num_args; in zend_try_inline_call()
94 && !(func->op_array.fn_flags & ZEND_ACC_STATIC)) { in zend_try_inline_call()
112 …if (Z_TYPE_P(CRT_CONSTANT_EX(&func->op_array, &func->op_array.opcodes[i], func->op_array.opcodes[i… in zend_try_inline_call()
116 } while (i < func->op_array.num_args); in zend_try_inline_call()
131 zend_delete_call_instructions(op_array, opline-1); in zend_try_inline_call()
152 zend_op *opline = op_array->opcodes; in zend_optimize_func_calls()
153 zend_op *end = opline + op_array->last; in zend_optimize_func_calls()
[all …]
H A Dzend_call_graph.c40 ZEND_SET_FUNC_INFO(op_array, func_info); in zend_op_array_collect()
48 zend_op *opline = op_array->opcodes; in zend_analyze_calls()
49 zend_op *end = opline + op_array->last; in zend_analyze_calls()
66 script, op_array, opline, &is_prototype); in zend_analyze_calls()
69 call_info->caller_op_array = op_array; in zend_analyze_calls()
161 if (op_array == root) { in zend_is_indirectly_recursive()
165 func_info = ZEND_FUNC_INFO(op_array); in zend_is_indirectly_recursive()
183 zend_op_array *op_array; in zend_analyze_recursion() local
193 op_array = call_graph->op_arrays[i]; in zend_analyze_recursion()
201 if (call_info->caller_op_array == op_array) { in zend_analyze_recursion()
[all …]
H A Dzend_cfg.h103 #define CRT_CONSTANT_EX(op_array, opline, node) \ argument
104 (((op_array)->fn_flags & ZEND_ACC_DONE_PASS_TWO) ? \
107 CT_CONSTANT_EX(op_array, (node).constant) \
111 CRT_CONSTANT_EX(op_array, opline, node)
118 ZEND_API void zend_build_cfg(zend_arena **arena, const zend_op_array *op_array, uint32_t build_flag…
119 void zend_cfg_remark_reachable_blocks(const zend_op_array *op_array, zend_cfg *cfg);
121 ZEND_API void zend_cfg_compute_dominators_tree(const zend_op_array *op_array, zend_cfg *cfg);
122 ZEND_API void zend_cfg_identify_loops(const zend_op_array *op_array, zend_cfg *cfg);
H A Ddce.c51 zend_op_array *op_array; member
75 zend_op_array *op_array, zend_ssa *ssa, in may_have_side_effects() argument
241 if (op_array->static_variables) { in may_have_side_effects()
335 return var_num >= ctx->op_array->last_var; in is_var_dead()
536 ctx.op_array = op_array; in dce_optimize_op_array()
556 if (phi->var >= op_array->last_var in dce_optimize_op_array()
588 …} else if (may_have_side_effects(op_array, ssa, &op_array->opcodes[i], &ssa->ops[i], ctx.reorder_d… in dce_optimize_op_array()
589 || (zend_may_throw(&op_array->opcodes[i], &ssa->ops[i], op_array, ssa) in dce_optimize_op_array()
592 if (op_array->opcodes[i].opcode == ZEND_NEW in dce_optimize_op_array()
620 if (i < op_array->last in dce_optimize_op_array()
[all …]
H A Doptimize_temp_vars_5.c43 void zend_optimize_temporary_variables(zend_op_array *op_array, zend_optimizer_ctx *ctx) in zend_optimize_temporary_variables() argument
45 uint32_t T = op_array->T; in zend_optimize_temporary_variables()
46 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()
76 end = op_array->opcodes; in zend_optimize_temporary_variables()
77 opline = &op_array->opcodes[op_array->last - 1]; in zend_optimize_temporary_variables()
107 if ((op_array->fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK) && in zend_optimize_temporary_variables()
177 op_array->T = max + 1 + ZEND_OBSERVER_ENABLED; // reserve last temporary for observers if enabled in zend_optimize_temporary_variables()
H A Dblock_pass.c84 strip_leading_nops(op_array, b); in strip_nops()
96 op_array->opcodes[j] = op_array->opcodes[i]; in strip_nops()
995 efree(op_array->opcodes); in assemble_code_blocks()
997 op_array->last = len; in assemble_code_blocks()
1421 if (op_array->T == 0) { in zend_t_usage()
1427 bitset_len = zend_bitset_len(op_array->last_var + op_array->T); in zend_t_usage()
1495 for (i = op_array->last_var; i< op_array->T; i++) { in zend_t_usage()
1689 if (cfg.blocks_count * (op_array->last_var + op_array->T) > 64 * 1024 * 1024) { in zend_optimize_cfg()
1698 bitset_len = zend_bitset_len(op_array->last_var + op_array->T); in zend_optimize_cfg()
1721 memset(Tsource, 0, (op_array->last_var + op_array->T) * sizeof(zend_op *)); in zend_optimize_cfg()
[all …]
H A Dpass1.c50 zend_optimizer_update_op1_const(op_array, opline, result); in replace_by_const_or_qm_assign()
56 zend_op *opline = op_array->opcodes; in zend_optimizer_pass1()
57 zend_op *end = opline + op_array->last; in zend_optimizer_pass1()
59 (op_array == &ctx->script->main_op_array) : 0; in zend_optimizer_pass1()
96 replace_by_const_or_qm_assign(op_array, opline, &result); in zend_optimizer_pass1()
110 replace_by_const_or_qm_assign(op_array, opline, &result); in zend_optimizer_pass1()
118 replace_by_const_or_qm_assign(op_array, opline, &result); in zend_optimizer_pass1()
132 fake_execute_data.func = (zend_function*)op_array; in zend_optimizer_pass1()
137 replace_by_const_or_qm_assign(op_array, opline, offset); in zend_optimizer_pass1()
154 replace_by_const_or_qm_assign(op_array, opline, &result); in zend_optimizer_pass1()
[all …]
H A Dzend_func_info.h47 #define ZEND_FUNC_INFO(op_array) \ argument
48 ((zend_func_info*)((op_array)->reserved[zend_func_info_rid]))
50 #define ZEND_SET_FUNC_INFO(op_array, info) do { \ argument
51 zend_func_info** pinfo = (zend_func_info**)&(op_array)->reserved[zend_func_info_rid]; \
/PHP-8.2/ext/opcache/
H A Dzend_persist.c375 if (op_array->refcount && --(*op_array->refcount) == 0) { in zend_persist_op_array_ex()
404 if (op_array->scope) { in zend_persist_op_array_ex()
468 op_array->vars = zend_shared_alloc_get_xlat_entry(op_array->vars); in zend_persist_op_array_ex()
483 if (op_array->scope in zend_persist_op_array_ex()
633op_array->live_range = zend_shared_memdup_put_free(op_array->live_range, sizeof(zend_live_range) *… in zend_persist_op_array_ex()
646 op_array->attributes = zend_persist_attributes(op_array->attributes); in zend_persist_op_array_ex()
653 if (op_array->vars) { in zend_persist_op_array_ex()
655op_array->vars = zend_shared_memdup_put_free(op_array->vars, sizeof(zend_string*) * op_array->last… in zend_persist_op_array_ex()
733 … if (!op_array->scope || (op_array->scope == ce && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE))) { in zend_persist_class_method()
744 zend_shared_alloc_register_xlat_entry(op_array, op_array); in zend_persist_class_method()
[all …]
H A Dzend_persist_calc.c215 if (op_array->scope) { in zend_persist_op_array_calc_ex()
223 if (op_array->scope in zend_persist_op_array_calc_ex()
229 if (op_array->static_variables && !zend_accel_in_shm(op_array->static_variables)) { in zend_persist_op_array_calc_ex()
244 if (op_array->literals) { in zend_persist_op_array_calc_ex()
254 zend_shared_alloc_register_xlat_entry(op_array->opcodes, op_array->opcodes); in zend_persist_op_array_calc_ex()
257 if (op_array->filename) { in zend_persist_op_array_calc_ex()
261 if (op_array->arg_info) { in zend_persist_op_array_calc_ex()
282 if (op_array->live_range) { in zend_persist_op_array_calc_ex()
298 if (op_array->vars) { in zend_persist_op_array_calc_ex()
324 zend_shared_alloc_register_xlat_entry(op_array, op_array); in zend_persist_op_array_calc()
[all …]
H A Dzend_file_cache.c471 if (op_array->scope) {
489 zend_shared_alloc_register_xlat_entry(op_array->opcodes, op_array->opcodes);
501 if (op_array->literals) {
505 p = op_array->literals;
578 if (op_array->arg_info) {
581 p = op_array->arg_info;
599 if (op_array->vars) {
603 p = op_array->vars;
1362 p = op_array->literals;
1449 if (op_array->vars) {
[all …]
/PHP-8.2/ext/opcache/jit/
H A Dzend_jit_trace.c1267 op_array = p->op_array; in zend_jit_trace_build_tssa()
1314 op_array = p->op_array; in zend_jit_trace_build_tssa()
1414 op_array = p->op_array; in zend_jit_trace_build_tssa()
1424 op_array = p->op_array; in zend_jit_trace_build_tssa()
2312 op_array = p->op_array; in zend_jit_trace_build_tssa()
2383 op_array = p->op_array; in zend_jit_trace_build_tssa()
3032 op_array = p->op_array; in zend_jit_trace_allocate_registers()
3058 op_array = p->op_array; in zend_jit_trace_allocate_registers()
4040 op_array = p->op_array; in zend_jit_trace()
7395 op_array = p->op_array; in zend_jit_dump_trace()
[all …]
H A Dzend_jit.c377 const zend_op *end = op_array->opcodes + op_array->last; in zend_jit_needs_call_chain()
1029 (op_array && op_array->filename) ? ZSTR_VAL(op_array->filename) : NULL, in dasm_link_and_encode()
1030 op_array, in dasm_link_and_encode()
1041 (op_array && op_array->filename) ? ZSTR_VAL(op_array->filename) : NULL, in dasm_link_and_encode()
1042 op_array, in dasm_link_and_encode()
1057 op_array, in dasm_link_and_encode()
2708 ZSTR_VAL(op_array->filename), op_array->line_start); in zend_jit()
2793 arg_info = &op_array->arg_info[op_array->num_args]; in zend_jit()
4247 zend_op_array *op_array = &EX(func)->op_array; in zend_runtime_jit() local
4300 op_array = &func->op_array; in zend_jit_check_funcs()
[all …]
H A Dzend_jit_vm_helpers.c130 zend_op_array *op_array = &EX(func)->op_array; in zend_jit_copy_extra_args_helper() local
150 dst = src + (op_array->last_var + op_array->T - first_extra_arg); in zend_jit_copy_extra_args_helper()
440 count += (unrolled_calls[i] == op_array); in zend_jit_trace_recursive_call_count()
595 const zend_op_array *op_array; local
625 op_array = &EX(func)->op_array;
629 if (!op_array->function_name
631 op_array = jit_extension->op_array;
923 op_array = &EX(func)->op_array;
932 if (!op_array->function_name
934 op_array = jit_extension->op_array;
[all …]

Completed in 137 milliseconds

1234