/PHP-7.1/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() 107 end = op_array->opcodes + op_array->last; in zend_optimizer_nop_removal() 110 for (opline = op_array->opcodes; opline<end; opline++) { in zend_optimizer_nop_removal() 114 …opline->op1, ZEND_OP1_JMP_ADDR(opline) - shiftlist[ZEND_OP1_JMP_ADDR(opline) - op_array->opcodes]); in zend_optimizer_nop_removal() 128 …opline->op2, ZEND_OP2_JMP_ADDR(opline) - shiftlist[ZEND_OP2_JMP_ADDR(opline) - op_array->opcodes]); in zend_optimizer_nop_removal() 162 opline_num = &ZEND_RESULT(&op_array->opcodes[*opline_num]).opline_num; in zend_optimizer_nop_removal()
|
H A D | zend_inference.h | 46 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 47 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range); \ 69 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 70 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range) { \ 71 return ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].range.min; \ 93 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 94 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range) { \ 111 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ 112 ssa->var_info[ssa->ops[opline - op_array->opcodes].opN##_use].has_range) { \ 129 ssa->ops[opline - op_array->opcodes].opN##_use >= 0 && \ [all …]
|
H A D | zend_cfg.c | 43 zend_mark_reachable(opcodes, cfg, b0); in zend_mark_reachable() 47 opcode = opcodes[b->start + b->len - 1].opcode; in zend_mark_reachable() 55 opcode = opcodes[b->start + b->len - 1].opcode; in zend_mark_reachable() 98 zend_mark_reachable(op_array->opcodes, cfg, blocks + start); in zend_mark_reachable_blocks() 120 && (op_array->opcodes[b->start + 1].opcode == ZEND_JMPZ in zend_mark_reachable_blocks() 121 || op_array->opcodes[b->start + 1].opcode == ZEND_JMPNZ) in zend_mark_reachable_blocks() 141 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() 195 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() 203 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() 211 zend_mark_reachable(op_array->opcodes, cfg, b); in zend_mark_reachable_blocks() [all …]
|
H A D | dfa_pass.c | 136 ZEND_ASSERT(op_array->opcodes[b->start].opcode == ZEND_FREE in zend_ssa_remove_nops() 137 || op_array->opcodes[b->start].opcode == ZEND_FE_FREE); in zend_ssa_remove_nops() 146 if (EXPECTED(op_array->opcodes[i].opcode != ZEND_NOP) || in zend_ssa_remove_nops() 151 (op_array->opcodes[i+1].opcode == ZEND_JMPZ || in zend_ssa_remove_nops() 152 op_array->opcodes[i+1].opcode == ZEND_JMPNZ) && in zend_ssa_remove_nops() 155 op_array->opcodes[target] = op_array->opcodes[i]; in zend_ssa_remove_nops() 167 opline = op_array->opcodes + end - 1; in zend_ssa_remove_nops() 172 new_opline = op_array->opcodes + target - 1; in zend_ssa_remove_nops() 211 MAKE_NOP(op_array->opcodes + i); in zend_ssa_remove_nops() 401 opline = op_array->opcodes + op_1; in zend_dfa_optimize_op_array() [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 | block_pass.c | 91 zend_op *opcodes = op_array->opcodes; in strip_leading_nops() local 120 if (op_array->opcodes[i].opcode != ZEND_NOP) { in strip_nops() 122 op_array->opcodes[j] = op_array->opcodes[i]; in strip_nops() 138 MAKE_NOP(op_array->opcodes + j); in strip_nops() 151 opline = op_array->opcodes + block->start; in zend_optimize_block() 858 efree(op_array->opcodes); in assemble_code_blocks() 859 op_array->opcodes = new_opcodes; in assemble_code_blocks() 1010 opline = op_array->opcodes; in assemble_code_blocks() 1014 *opline_num = opline - op_array->opcodes; in assemble_code_blocks() 1535 opline = op_array->opcodes + block->start; in zend_t_usage() [all …]
|
H A D | zend_dump.c | 403 int ssa_var_num = ssa->ops[opline - op_array->opcodes].result_def; in zend_dump_op() 551 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op1_use; in zend_dump_op() 555 } else if (ssa->ops[opline - op_array->opcodes].op1_def < 0) { in zend_dump_op() 564 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op1_def; in zend_dump_op() 587 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op2_use; in zend_dump_op() 591 } else if (ssa->ops[opline - op_array->opcodes].op2_def < 0) { in zend_dump_op() 600 int ssa_var_num = ssa->ops[opline - op_array->opcodes].op2_def; in zend_dump_op() 633 int ssa_var_num = ssa->ops[opline - op_array->opcodes].result_use; in zend_dump_op() 643 int ssa_var_num = ssa->ops[opline - op_array->opcodes].result_def; in zend_dump_op() 926 opline = op_array->opcodes + b->start; in zend_dump_op_array() [all …]
|
H A D | zend_call_graph.c | 85 zend_op *opline = op_array->opcodes; in zend_analyze_calls() 280 map[call->caller_init_opline - op_array->opcodes] = call; in zend_build_call_map() 281 map[call->caller_call_opline - op_array->opcodes] = call; in zend_build_call_map() 284 map[call->arg_info[i].opline - op_array->opcodes] = call; in zend_build_call_map()
|
H A D | optimize_func_calls.c | 98 && func->op_array.opcodes[func->op_array.num_args].opcode == ZEND_RETURN) { in zend_try_inline_call() 100 zend_op *ret_opline = func->op_array.opcodes + func->op_array.num_args; in zend_try_inline_call() 126 if (Z_CONSTANT_P(RT_CONSTANT(&func->op_array, func->op_array.opcodes[i].op2))) { in zend_try_inline_call() 152 zend_op *opline = op_array->opcodes; in zend_optimize_func_calls()
|
H A D | zend_optimizer.c | 88 zend_op *opline = op_array->opcodes; in zend_optimizer_lookup_cv() 395 zend_op *opline = op_array->opcodes; in zend_optimizer_remove_live_range() 420 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const() 479 if (op_array->live_range[brk].start <= (uint32_t)(opline - op_array->opcodes) && in zend_optimizer_replace_by_const() 480 op_array->live_range[brk].end > (uint32_t)(opline - op_array->opcodes)) { in zend_optimizer_replace_by_const() 494 n = op_array->opcodes + op_array->live_range[brk].end; in zend_optimizer_replace_by_const() 499 n = op_array->opcodes + op_array->last; in zend_optimizer_replace_by_const() 818 opline = op_array->opcodes; in zend_revert_pass_two() 835 opline = op_array->opcodes; in zend_redo_pass_two() 854 opline = op_array->opcodes; in zend_redo_pass_two_ex() [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 | zend_inference.c | 120 if (op_array->opcodes[line].opcode == ZEND_OP_DATA) { \ 131 op_array->opcodes[line+1].opcode == ZEND_OP_DATA) { \ 922 opline = op_array->opcodes + line; in zend_inference_calc_range() 1844 if (op_array->opcodes[use].opcode == ZEND_OP_DATA) { in add_usages() 1895 if (op_array->opcodes[use+1].opcode == ZEND_OP_DATA) { in reset_dependent_vars() 2173 zend_op *opline = op_array->opcodes + i; in zend_update_type_info() 3061 switch (op_array->opcodes[j].opcode) { in zend_update_type_info() 3459 zend_op *opline = &op_array->opcodes[use]; in can_convert_to_double() 3589 opline = op_array->opcodes + ssa->vars[v].definition; in zend_type_narrowing() 3630 info->ssa.ops[opline - op_array->opcodes].op1_use >= 0 && in is_recursive_tail_call() [all …]
|
H A D | pass3.c | 59 zend_op *end = op_array->opcodes + op_array->last; in zend_optimizer_pass3() 67 opline = op_array->opcodes; in zend_optimizer_pass3() 345 for(op = &op_array->opcodes[ZEND_OP2(opline).opline_num]; op<end; op++) { in zend_optimizer_pass3()
|
H A D | zend_ssa.c | 170 while (op != op_array->opcodes) { in find_adjusted_tmp_var() 237 zend_op *opline = op_array->opcodes + blocks[j].start + blocks[j].len - 1; in place_essa_pis() 553 opline = op_array->opcodes + blocks[n].start; in zend_ssa_rename() 556 uint32_t k = opline - op_array->opcodes; in zend_ssa_rename() 1043 ssa_vars[op->op1_def].var = EX_VAR_TO_NUM(op_array->opcodes[i].op1.var); in zend_ssa_compute_use_def_chains() 1047 ssa_vars[op->op2_def].var = EX_VAR_TO_NUM(op_array->opcodes[i].op2.var); in zend_ssa_compute_use_def_chains() 1051 ssa_vars[op->result_def].var = EX_VAR_TO_NUM(op_array->opcodes[i].result.var); in zend_ssa_compute_use_def_chains()
|
/PHP-7.1/Zend/ |
H A D | zend_vm_gen.php | 1462 …gen_handler($f, 1, $kind, $opcodes[$num]["op"], $op1, $op2, isset($opcodes[$num]["use"]), $opcodes… 1489 …gen_handler($f, 0, $kind, $opcodes[$num]["op"], "ANY", "ANY", isset($opcodes[$num]["use"]), $opcod… 1995 if (isset($opcodes[$code])) { 2038 if (isset($opcodes[$code])) { 2124 if (isset($opcodes[$code])) { 2141 ksort($opcodes); 2144 foreach ($opcodes as $dsc) { 2151 $opcodes[$code]['use'] = 1; 2206 fputs($f,"\t".(isset($opcodes[$i]["op"])?'"'.$opcodes[$i]["op"].'"':"NULL").",\n"); 2212 fprintf($f, "\t0x%08x,\n", isset($opcodes[$i]["flags"]) ? $opcodes[$i]["flags"] : 0); [all …]
|
H A D | zend_opcode.c | 49 op_array->opcodes = erealloc(op_array->opcodes, size * sizeof(zend_op)); in op_array_alloc_ops() 62 op_array->opcodes = NULL; in init_op_array() 402 efree(op_array->opcodes); in destroy_op_array() 461 next_op = &(op_array->opcodes[next_op_num]); in get_next_op() 482 zend_op *opline = op_array->opcodes, *end=opline+op_array->last; in zend_update_extended_info() 521 CG(zend_lineno) = op_array->opcodes[op_num].lineno; in zend_check_finally_breakout() 529 CG(zend_lineno) = op_array->opcodes[op_num].lineno; in zend_check_finally_breakout() 570 op_array->opcodes = (zend_op *) erealloc(op_array->opcodes, sizeof(zend_op)*op_array->last); in pass_two() 577 opline = op_array->opcodes; in pass_two() 591 zend_check_finally_breakout(op_array, opline - op_array->opcodes, jmp_target); in pass_two() [all …]
|
H A D | zend_generators.c | 104 if (execute_data->opline != execute_data->func->op_array.opcodes) { in zend_generator_cleanup_unfinished_execution() 106 uint32_t op_num = execute_data->opline - execute_data->func->op_array.opcodes - 1; in zend_generator_cleanup_unfinished_execution() 196 op_num = ex->opline - ex->func->op_array.opcodes - 1; in zend_generator_dtor_storage() 221 fast_call = ZEND_CALL_VAR(ex, ex->func->op_array.opcodes[finally_op_end].op1.var); in zend_generator_dtor_storage() 226 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()
|
H A D | zend_compile.h | 369 zend_op *opcodes; member 545 ((char*)&(op_array)->opcodes[opline_num] - (char*)(opline)) 551 (ZEND_OFFSET_TO_OPLINE(base, offset) - op_array->opcodes) 565 (node).jmp_addr = (op_array)->opcodes + (node).opline_num; \ 570 (node).opline_num = (node).jmp_addr - (op_array)->opcodes; \
|
/PHP-7.1/sapi/phpdbg/ |
H A D | phpdbg_opcode.c | 73 spprintf(&result, 0, "J%td", OP_JMP_ADDR(opline, op) - ops->opcodes); in phpdbg_decode_input_op() 174 cur->opcodes = op_array->opcodes; in phpdbg_print_opline_ex()
|
H A D | phpdbg_opcode.h | 36 zend_op *opcodes; member
|
/PHP-7.1/Zend/tests/ |
H A D | bug73338.phpt | 2 Bug #73338: Ensure exceptions in function init opcodes are cleaned properly
|
/PHP-7.1/ext/opcache/ |
H A D | zend_persist.c | 407 if (zend_shared_alloc_get_xlat_entry(op_array->opcodes)) { in zend_persist_op_array_ex() 430 persist_ptr = zend_shared_alloc_get_xlat_entry(op_array->opcodes); in zend_persist_op_array_ex() 432 op_array->opcodes = persist_ptr; in zend_persist_op_array_ex() 434 zend_op *new_opcodes = zend_accel_memdup(op_array->opcodes, sizeof(zend_op) * op_array->last); in zend_persist_op_array_ex() 455 opline->op1.jmp_addr = &new_opcodes[opline->op1.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex() 469 opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes]; in zend_persist_op_array_ex() 483 efree(op_array->opcodes); in zend_persist_op_array_ex() 484 op_array->opcodes = new_opcodes; in zend_persist_op_array_ex()
|
H A D | zend_file_cache.c | 376 if (op_array->scope && !IS_SERIALIZED(op_array->opcodes)) { in zend_file_cache_serialize_op_array() 377 if (UNEXPECTED(zend_shared_alloc_get_xlat_entry(op_array->opcodes))) { in zend_file_cache_serialize_op_array() 380 SERIALIZE_PTR(op_array->opcodes); in zend_file_cache_serialize_op_array() 392 zend_shared_alloc_register_xlat_entry(op_array->opcodes, op_array->opcodes); in zend_file_cache_serialize_op_array() 408 if (!IS_SERIALIZED(op_array->opcodes)) { in zend_file_cache_serialize_op_array() 411 SERIALIZE_PTR(op_array->opcodes); in zend_file_cache_serialize_op_array() 412 opline = op_array->opcodes; in zend_file_cache_serialize_op_array() 1010 UNSERIALIZE_PTR(op_array->opcodes); in zend_file_cache_unserialize_op_array() 1035 if (!IS_UNSERIALIZED(op_array->opcodes)) { in zend_file_cache_unserialize_op_array() 1038 UNSERIALIZE_PTR(op_array->opcodes); in zend_file_cache_unserialize_op_array() [all …]
|
H A D | zend_persist_calc.c | 176 if (zend_shared_alloc_get_xlat_entry(op_array->opcodes)) { in zend_persist_op_array_calc_ex() 197 ADD_DUP_SIZE(op_array->opcodes, sizeof(zend_op) * op_array->last); in zend_persist_op_array_calc_ex()
|
/PHP-7.1/ext/pcre/pcrelib/ |
H A D | HACKING | 139 is handled entirely at compile time by generating different opcodes for the 237 following opcodes, which come in caseful and caseless versions: 254 Other repeats make use of these opcodes: 267 Another set of matching repeating opcodes (called OP_NOTSTAR, OP_NOTSTARI, 269 The normal single-character opcodes (OP_STAR, etc.) are used for repeated 278 unit. The opcodes are: 306 Repeats of these items use the OP_TYPESTAR etc. set of opcodes, followed by 318 A set of repeating opcodes (called OP_NOTSTAR etc.) are used for repeated, 319 negated, single-character classes. The normal single-character opcodes 422 single-unit opcodes that tell the matcher that skipping the following [all …]
|