Home
last modified time | relevance | path

Searched refs:opcodes (Results 1 – 25 of 60) sorted by relevance

123

/php-src/Zend/Optimizer/
H A Ddfa_pass.c162 op_array->opcodes[target] = op_array->opcodes[i]; in zend_ssa_remove_nops()
1400 && op_array->opcodes[op_2].op1.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1416 && op_array->opcodes[op_2].op1.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1432 && op_array->opcodes[op_2].op2.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1440 op_array->opcodes[op_2].op1_type = op_array->opcodes[op_2].op2_type; in zend_dfa_optimize_op_array()
1441 op_array->opcodes[op_2].op1.var = op_array->opcodes[op_2].op2.var; in zend_dfa_optimize_op_array()
1554 && op_array->opcodes[op_2].op1.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1570 && op_array->opcodes[op_2].op1.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1586 && op_array->opcodes[op_2].op2.var == op_array->opcodes[op_2].result.var in zend_dfa_optimize_op_array()
1594 op_array->opcodes[op_2].op1_type = op_array->opcodes[op_2].op2_type; in zend_dfa_optimize_op_array()
[all …]
H A Dnop_removal.c43 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal()
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()
65 zend_op *new_opline = op_array->opcodes + 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()
H A Ddce.c352 && var->use_chain == (opline - ctx->op_array->opcodes)) { in try_remove_var_def()
353 zend_op *def_opline = &ctx->op_array->opcodes[def]; in try_remove_var_def()
441 zend_bitset_excl(ctx->instr_dead, opline - ctx->op_array->opcodes); in dce_instr()
577 if (op_array->opcodes[i].opcode == ZEND_OP_DATA) { in dce_optimize_op_array()
590 && !may_throw_dce_exception(&op_array->opcodes[i])) in dce_optimize_op_array()
592 if (op_array->opcodes[i].opcode == ZEND_NEW in dce_optimize_op_array()
593 && op_array->opcodes[i+1].opcode == ZEND_DO_FCALL in dce_optimize_op_array()
621 && (op_array->opcodes[i+1].opcode == ZEND_OP_DATA in dce_optimize_op_array()
622 || (op_array->opcodes[i].opcode == ZEND_NEW in dce_optimize_op_array()
623 && op_array->opcodes[i+1].opcode == ZEND_DO_FCALL))) { in dce_optimize_op_array()
[all …]
H A Dzend_cfg.c44 uint8_t opcode = opcodes[b->start + b->len - 1].opcode; in zend_mark_reachable()
100 zend_mark_reachable(opcodes, cfg, succ); in zend_mark_reachable()
113 zend_mark_reachable(op_array->opcodes, cfg, blocks + start); in zend_mark_reachable_blocks()
166 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks()
174 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks()
182 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks()
212 zend_op *opline = &op_array->opcodes[j]; in zend_mark_reachable_blocks()
289 zend_op *opline = op_array->opcodes + i; in zend_build_cfg()
350 BB_START(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes); in zend_build_cfg()
359 BB_START(OP_JMP_ADDR(opline, opline->op1) - op_array->opcodes); in zend_build_cfg()
[all …]
H A Doptimize_temp_vars_5.c62 end = op_array->opcodes; in zend_optimize_temporary_variables()
63 opline = &op_array->opcodes[op_array->last - 1]; in zend_optimize_temporary_variables()
75 end = op_array->opcodes; in zend_optimize_temporary_variables()
76 opline = &op_array->opcodes[op_array->last - 1]; in zend_optimize_temporary_variables()
H A Dblock_pass.c67 zend_op *opcodes = op_array->opcodes; in strip_leading_nops() local
94 if (op_array->opcodes[i].opcode != ZEND_NOP) { in strip_nops()
96 op_array->opcodes[j] = op_array->opcodes[i]; in strip_nops()
104 MAKE_NOP(op_array->opcodes + j); in strip_nops()
148 opline = op_array->opcodes + block->start; in zend_optimize_block()
969 zend_op *op = op_array->opcodes + b->start; in assemble_code_blocks()
995 efree(op_array->opcodes); in assemble_code_blocks()
996 op_array->opcodes = new_opcodes; in assemble_code_blocks()
1440 opline = op_array->opcodes + block->start; in zend_t_usage()
1521 end = op_array->opcodes + block->start; in zend_t_usage()
[all …]
H A Dzend_optimizer.c627 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const()
645 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const()
1014 while (--free_opline >= op_array->opcodes) { in zend_optimizer_get_loop_var_def()
1146 opline = op_array->opcodes; in zend_revert_pass_two()
1176 zend_op *old_opcodes = op_array->opcodes; in zend_redo_pass_two()
1183 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two()
1200 opline = op_array->opcodes; in zend_redo_pass_two()
1288 zend_op *old_opcodes = op_array->opcodes; in zend_redo_pass_two_ex()
1295 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in zend_redo_pass_two_ex()
1310 opline = op_array->opcodes; in zend_redo_pass_two_ex()
[all …]
H A Doptimize_func_calls.c85 && 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()
112 …(Z_TYPE_P(CRT_CONSTANT_EX(&func->op_array, &func->op_array.opcodes[i], func->op_array.opcodes[i].o… in zend_try_inline_call()
152 zend_op *opline = op_array->opcodes; in zend_optimize_func_calls()
H A Dzend_call_graph.c48 zend_op *opline = op_array->opcodes; in zend_analyze_calls()
278 map[call->caller_init_opline - op_array->opcodes] = call; in zend_build_call_map()
280 map[call->caller_call_opline - op_array->opcodes] = call; in zend_build_call_map()
285 map[call->arg_info[i].opline - op_array->opcodes] = call; in zend_build_call_map()
H A Dzend_func_info.c62 ssa->ops ? &ssa->ops[call_info->arg_info[0].opline - op_array->opcodes] : NULL); in zend_range_info()
64 ssa->ops ? &ssa->ops[call_info->arg_info[1].opline - op_array->opcodes] : NULL); in zend_range_info()
70 ssa->ops ? &ssa->ops[call_info->arg_info[2].opline - op_array->opcodes] : NULL); in zend_range_info()
H A Dscdf.c123 zend_op *opline = &scdf->op_array->opcodes[i]; in scdf_solve()
163 opline = &scdf->op_array->opcodes[j]; in scdf_solve()
216 if (is_live_loop_var_free(scdf, &op_array->opcodes[i], &scdf->ssa->ops[i])) { in kept_alive_by_loop_var_free()
237 zend_op *opline = &op_array->opcodes[i]; in cleanup_loop_var_free_block()
H A Dcompact_vars.c37 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars()
85 zend_op *opline = &op_array->opcodes[i]; in zend_optimizer_compact_vars()
H A Descape_analysis.c104 zend_op *opline = op_array->opcodes + def; in zend_build_equi_escape_sets()
153 zend_op *opline = op_array->opcodes + def; in is_allocation_def()
224 zend_op *opline = op_array->opcodes + def; in is_local_def()
274 zend_op *opline = op_array->opcodes + use; in is_escape_use()
479 zend_op *opline = op_array->opcodes + use; in zend_ssa_escape_analysis()
H A Dpass3.c63 opline = op_array->opcodes; in zend_optimizer_pass3()
101 } else if (opline > op_array->opcodes && in zend_optimizer_pass3()
H A Dsccp.c1076 call = ctx->call_map[opline - ctx->scdf.op_array->opcodes]; in sccp_visit_instr()
1083 ssa_op = &ctx->scdf.ssa->ops[opline - ctx->scdf.op_array->opcodes]; in sccp_visit_instr()
1658 call = ctx->call_map[opline - ctx->scdf.op_array->opcodes]; in sccp_visit_instr()
1681 &ctx->scdf.ssa->ops[opline - ctx->scdf.op_array->opcodes]); in sccp_visit_instr()
1736 … args[1] = get_op2_value(ctx, opline, &ctx->scdf.ssa->ops[opline - ctx->scdf.op_array->opcodes]); in sccp_visit_instr()
1739 … args[0] = get_op1_value(ctx, opline, &ctx->scdf.ssa->ops[opline - ctx->scdf.op_array->opcodes]); in sccp_visit_instr()
2092 call = ctx->call_map[opline - op_array->opcodes]; in remove_call()
2097 &ssa->ops[call->caller_init_opline - op_array->opcodes]); in remove_call()
2101 &ssa->ops[call->arg_info[i].opline - op_array->opcodes]); in remove_call()
2130 zend_op *opline = &op_array->opcodes[var->definition]; in try_remove_definition()
[all …]
/php-src/Zend/
H A Dzend_vm_gen.php623 global $prefix, $opnames, $opcodes;
1691 …_handler($f, 1, $kind, $opcodes[$num]["op"], $op1, $op2, isset($opcodes[$num]["use"]), $opcodes[$n…
1720 …handler($f, 0, $kind, $opcodes[$num]["op"], "ANY", "ANY", isset($opcodes[$num]["use"]), $opcodes[$…
2374 foreach ($opcodes as $code => $dsc) {
2463 if (isset($opcodes[$code])) {
2526 if (isset($opcodes[$code])) {
2612 if (isset($opcodes[$code])) {
2629 ksort($opcodes);
2632 foreach ($opcodes as $dsc) {
2671 fputs($f,"\t".(isset($opcodes[$i]["op"])?'"'.$opcodes[$i]["op"].'"':"NULL").",\n");
[all …]
H A Dzend_opcode.c587 efree(op_array->opcodes); in destroy_op_array()
685 CG(zend_lineno) = op_array->opcodes[op_num].lineno; in zend_check_finally_breakout()
733 zend_op *use_opline = &op_array->opcodes[end]; in emit_live_range()
844 start = block_start_op - op_array->opcodes; in emit_live_range()
855 start = def_opline + 1 - op_array->opcodes; in emit_live_range()
864 start = def_opline + 1 - op_array->opcodes; in emit_live_range()
865 end = use_opline - op_array->opcodes; in emit_live_range()
922 zend_op *opline = &op_array->opcodes[opnum]; in zend_calc_live_ranges()
1052 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, sizeof(zend_op)*op_array->last); in pass_two()
1060 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, in pass_two()
[all …]
H A Dzend_generators.c116 if (execute_data->opline != op_array->opcodes) { in zend_generator_cleanup_unfinished_execution()
118 uint32_t op_num = execute_data->opline - op_array->opcodes - 1; in zend_generator_cleanup_unfinished_execution()
258 op_num = ex->opline - ex->func->op_array.opcodes - 1; in zend_generator_dtor_storage()
279 ZEND_CALL_VAR(ex, ex->func->op_array.opcodes[try_catch->finally_end].op1.var); in zend_generator_dtor_storage()
288 ex->opline = &ex->func->op_array.opcodes[try_catch->finally_op]; in zend_generator_dtor_storage()
306 ZEND_CALL_VAR(ex, ex->func->op_array.opcodes[try_catch->finally_end].op1.var); in zend_generator_dtor_storage()
309 zend_op *retval_op = &ex->func->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)]; in zend_generator_dtor_storage()
/php-src/docs/source/introduction/
H A Dhigh-level-overview.rst21 - Compilation - traversing the AST and building a list of operations, called opcodes.
22 - Interpretation - reading and executing opcodes.
32 |> compiler -- opcodes
132 into our virtual machine instructions, also called opcodes. The code responsible for this
136 Here's what the surprisingly compact opcodes for the AST above might look like:
148 Finally, the opcodes are read and executed by the interpreter. PHPs uses `three-address code`_ for
155 How exactly each opcode behaves depends on its purpose. You can find a complete list of opcodes in
159 Let's step through the opcodes form the example above:
180 Luckily, it is also not necessary. We can cache the opcodes in memory between requests, to skip over
184 Opcache also performs some optimizations on the opcodes before caching them. As opcaches are
[all …]
/php-src/ext/opcache/jit/
H A Dzend_jit.c324 const zend_op *end = op_array->opcodes + op_array->last; in zend_jit_needs_call_chain()
1324 opline = op_array->opcodes + ssa->cfg.blocks[b].start; in zend_jit()
1332 if (opline != op_array->opcodes && recv_emitted) { in zend_jit()
1456 opline = op_array->opcodes + i; in zend_jit()
2484 if (opline == op_array->opcodes || in zend_jit()
2814 zend_op *opline = op_array->opcodes; in zend_runtime_jit()
2867 opline = op_array->opcodes; in zend_jit_check_funcs()
2928 zend_op *opline = op_array->opcodes; in zend_jit_setup_hot_counters_ex()
3014 zend_op *opline = op_array->opcodes; in zend_jit_op_array()
3043 zend_op *opline = op_array->opcodes; in zend_jit_op_array()
[all …]
/php-src/Zend/tests/
H A Dby_ref_optimization.phpt2 Don't optimize send opcodes that differ in by-ref behavior
H A Dbug73338.phpt2 Bug #73338: Ensure exceptions in function init opcodes are cleaned properly
/php-src/ext/opcache/tests/jit/
H A Dignored_opcodes.phpt2 JIT: ignored opcodes
/php-src/ext/opcache/
H A Dzend_accelerator_util_funcs.c178 CG(zend_lineno) = function1->op_array.opcodes[0].lineno; in _zend_accel_function_hash_copy()
184 (int)function2->op_array.opcodes[0].lineno); in _zend_accel_function_hash_copy()
268 zend_op *end = op_array->opcodes + op_array->last; in zend_accel_build_delayed_early_binding_list()
269 for (zend_op *opline = op_array->opcodes; opline < end; opline++) { in zend_accel_build_delayed_early_binding_list()
278 for (zend_op *opline = op_array->opcodes; opline < end; opline++) { in zend_accel_build_delayed_early_binding_list()
300 zend_op *opline_end = op_array->opcodes + op_array->last; in zend_accel_finalize_delayed_early_binding_list()
301 for (zend_op *opline = op_array->opcodes; opline < opline_end; opline++) { in zend_accel_finalize_delayed_early_binding_list()
H A Dzend_persist.c420 persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->opcodes); in zend_persist_op_array_ex()
422 op_array->opcodes = persist_ptr; in zend_persist_op_array_ex()
523 …zend_op *new_opcodes = zend_shared_memdup_put(op_array->opcodes, sizeof(zend_op) * op_array->last); in zend_persist_op_array_ex()
546 ((zval*)((char*)(op_array->opcodes + (opline - new_opcodes)) + in zend_persist_op_array_ex()
558 ((zval*)((char*)(op_array->opcodes + (opline - new_opcodes)) + in zend_persist_op_array_ex()
569 opline->op1.jmp_addr = &new_opcodes[opline->op1.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex()
583 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex()
587 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex()
602 efree(op_array->opcodes); in zend_persist_op_array_ex()
603 op_array->opcodes = new_opcodes; in zend_persist_op_array_ex()
[all …]

Completed in 159 milliseconds

123