Lines Matching refs:exit_num

1246 …_tssa(zend_jit_trace_rec *trace_buffer, uint32_t parent_trace, uint32_t exit_num, zend_script *scr…  in zend_jit_trace_build_tssa()  argument
1644 parent_vars_count = MIN(zend_jit_traces[parent_trace].exit_info[exit_num].stack_size, in zend_jit_trace_build_tssa()
1649 zend_jit_traces[parent_trace].exit_info[exit_num].stack_offset; in zend_jit_trace_build_tssa()
2690 exit_num, in zend_jit_trace_build_tssa()
2766 …egisters(zend_jit_trace_rec *trace_buffer, zend_ssa *ssa, uint32_t parent_trace, uint32_t exit_num) in zend_jit_trace_allocate_registers() argument
2781 zend_jit_traces[parent_trace].exit_info[exit_num].stack_size : 0; in zend_jit_trace_allocate_registers()
2784 zend_jit_traces[parent_trace].exit_info[exit_num].stack_offset : NULL; in zend_jit_trace_allocate_registers()
3421 static int zend_jit_trace_exit_needs_deoptimization(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_exit_needs_deoptimization() argument
3423 const zend_op *opline = zend_jit_traces[trace_num].exit_info[exit_num].opline; in zend_jit_trace_exit_needs_deoptimization()
3424 uint32_t flags = zend_jit_traces[trace_num].exit_info[exit_num].flags; in zend_jit_trace_exit_needs_deoptimization()
3432 stack_size = zend_jit_traces[trace_num].exit_info[exit_num].stack_size; in zend_jit_trace_exit_needs_deoptimization()
3433 …stack = zend_jit_traces[trace_num].stack_map + zend_jit_traces[trace_num].exit_info[exit_num].stac… in zend_jit_trace_exit_needs_deoptimization()
3997 …st void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t parent_trace, uint32_t exit_num) in zend_jit_trace() argument
4027 (zend_jit_traces[parent_trace].exit_info[exit_num].flags & ZEND_JIT_EXIT_METHOD_CALL); in zend_jit_trace()
4042 …ssa = zend_jit_trace_build_tssa(trace_buffer, parent_trace, exit_num, script, op_arrays, &num_op_a… in zend_jit_trace()
4054 parent_trace ? &zend_jit_traces[parent_trace] : NULL, exit_num); in zend_jit_trace()
4060 ctx.ra = ra = zend_jit_trace_allocate_registers(trace_buffer, ssa, parent_trace, exit_num); in zend_jit_trace()
4086 if (zend_jit_traces[parent_trace].exit_info[exit_num].opline == NULL) { in zend_jit_trace()
4107 parent_vars_count = MIN(zend_jit_traces[parent_trace].exit_info[exit_num].stack_size, in zend_jit_trace()
4112 zend_jit_traces[parent_trace].exit_info[exit_num].stack_offset; in zend_jit_trace()
4187 zend_jit_traces[parent_trace].exit_info[exit_num].flags, in zend_jit_trace()
4188 zend_jit_traces[parent_trace].exit_info[exit_num].opline, in zend_jit_trace()
4191 zend_jit_traces[parent_trace].exit_info[exit_num].poly_func_reg, in zend_jit_trace()
6279 … polymorphic_side_trace ? zend_jit_traces[parent_trace].exit_info[exit_num].poly_func_reg : -1, in zend_jit_trace()
6280 … polymorphic_side_trace ? zend_jit_traces[parent_trace].exit_info[exit_num].poly_this_reg : -1, in zend_jit_trace()
7265 static zend_string *zend_jit_trace_escape_name(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_escape_name() argument
7272 smart_str_append_long(&buf, (zend_long)exit_num); in zend_jit_trace_escape_name()
7277 static const void *zend_jit_trace_exit_to_vm(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_exit_to_vm() argument
7288 if (!zend_jit_trace_exit_needs_deoptimization(trace_num, exit_num)) { in zend_jit_trace_exit_to_vm()
7292 name = zend_jit_trace_escape_name(trace_num, exit_num); in zend_jit_trace_exit_to_vm()
7294 if (!zend_jit_deoptimizer_start(&ctx, name, trace_num, exit_num)) { in zend_jit_trace_exit_to_vm()
7302 stack_size = zend_jit_traces[trace_num].exit_info[exit_num].stack_size; in zend_jit_trace_exit_to_vm()
7303 stack = zend_jit_traces[trace_num].exit_info[exit_num].stack_size ? in zend_jit_trace_exit_to_vm()
7304 …zend_jit_traces[trace_num].stack_map + zend_jit_traces[trace_num].exit_info[exit_num].stack_offset… in zend_jit_trace_exit_to_vm()
7308 zend_jit_traces[trace_num].exit_info[exit_num].flags, in zend_jit_trace_exit_to_vm()
7309 zend_jit_traces[trace_num].exit_info[exit_num].opline, in zend_jit_trace_exit_to_vm()
7312 zend_jit_traces[trace_num].exit_info[exit_num].poly_func_reg, in zend_jit_trace_exit_to_vm()
7317 opline = zend_jit_traces[trace_num].exit_info[exit_num].opline; in zend_jit_trace_exit_to_vm()
8079 static void zend_jit_blacklist_trace_exit(uint32_t trace_num, uint32_t exit_num) in zend_jit_blacklist_trace_exit() argument
8086 …if (!(zend_jit_traces[trace_num].exit_info[exit_num].flags & (ZEND_JIT_EXIT_JITED|ZEND_JIT_EXIT_BL… in zend_jit_blacklist_trace_exit()
8091 handler = zend_jit_trace_exit_to_vm(trace_num, exit_num); in zend_jit_blacklist_trace_exit()
8098 exit_num, in zend_jit_blacklist_trace_exit()
8101 zend_jit_traces[trace_num].exit_info[exit_num].flags |= ZEND_JIT_EXIT_BLACKLISTED; in zend_jit_blacklist_trace_exit()
8117 static bool zend_jit_trace_exit_is_bad(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_exit_is_bad() argument
8120 zend_jit_traces[trace_num].exit_counters + exit_num; in zend_jit_trace_exit_is_bad()
8129 static bool zend_jit_trace_exit_is_hot(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_exit_is_hot() argument
8132 zend_jit_traces[trace_num].exit_counters + exit_num; in zend_jit_trace_exit_is_hot()
8141 …e_trace(zend_jit_trace_rec *trace_buffer, uint32_t parent_num, uint32_t exit_num, uint32_t polymor… in zend_jit_compile_side_trace() argument
8153 …if (zend_jit_traces[parent_num].exit_info[exit_num].flags & (ZEND_JIT_EXIT_JITED|ZEND_JIT_EXIT_BLA… in zend_jit_compile_side_trace()
8185 handler = zend_jit_trace(trace_buffer, parent_num, exit_num); in zend_jit_compile_side_trace()
8248 exit_num, in zend_jit_compile_side_trace()
8256 zend_jit_traces[parent_num].exit_info[exit_num].flags |= ZEND_JIT_EXIT_JITED; in zend_jit_compile_side_trace()
8306 …LL zend_jit_trace_hot_side(zend_execute_data *execute_data, uint32_t parent_num, uint32_t exit_num) in zend_jit_trace_hot_side() argument
8318 …if (zend_jit_traces[parent_num].exit_info[exit_num].flags & (ZEND_JIT_EXIT_JITED|ZEND_JIT_EXIT_BLA… in zend_jit_trace_hot_side()
8324 trace_num, parent_num, exit_num, in zend_jit_trace_hot_side()
8344 …if ((zend_jit_traces[parent_num].exit_info[exit_num].flags & (ZEND_JIT_EXIT_METHOD_CALL|ZEND_JIT_E… in zend_jit_trace_hot_side()
8345 || ((zend_jit_traces[parent_num].exit_info[exit_num].flags & ZEND_JIT_EXIT_POLYMORPHISM) in zend_jit_trace_hot_side()
8348 is_megamorphic = zend_jit_traces[parent_num].exit_info[exit_num].flags & in zend_jit_trace_hot_side()
8352 } else if (exit_num == 0) { in zend_jit_trace_hot_side()
8406 stop = zend_jit_compile_side_trace(trace_buffer, parent_num, exit_num, polymorphism); in zend_jit_trace_hot_side()
8432 || zend_jit_trace_exit_is_bad(parent_num, exit_num)) { in zend_jit_trace_hot_side()
8433 zend_jit_blacklist_trace_exit(parent_num, exit_num); in zend_jit_trace_hot_side()
8436 parent_num, exit_num); in zend_jit_trace_hot_side()
8452 int ZEND_FASTCALL zend_jit_trace_exit(uint32_t exit_num, zend_jit_registers_buf *regs) in zend_jit_trace_exit() argument
8463 uint32_t stack_size = t->exit_info[exit_num].stack_size; in zend_jit_trace_exit()
8464 …zend_jit_trace_stack *stack = stack_size ? t->stack_map + t->exit_info[exit_num].stack_offset : NU… in zend_jit_trace_exit()
8466 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_RESTORE_CALL) { in zend_jit_trace_exit()
8500 const zend_op *op = t->exit_info[exit_num].opline; in zend_jit_trace_exit()
8537 EX(opline) = t->exit_info[exit_num].opline - 1; in zend_jit_trace_exit()
8539 && !(t->exit_info[exit_num].flags & ZEND_JIT_EXIT_FREE_OP1) in zend_jit_trace_exit()
8546 opline = t->exit_info[exit_num].opline; in zend_jit_trace_exit()
8549 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_FREE_OP2) { in zend_jit_trace_exit()
8557 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_FREE_OP1) { in zend_jit_trace_exit()
8567 if (t->exit_info[exit_num].flags & (ZEND_JIT_EXIT_FREE_OP1|ZEND_JIT_EXIT_FREE_OP2)) { in zend_jit_trace_exit()
8572 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_METHOD_CALL) { in zend_jit_trace_exit()
8573 ZEND_ASSERT(t->exit_info[exit_num].poly_func_reg >= 0); in zend_jit_trace_exit()
8574 zend_function *func = (zend_function*)regs->gpr[t->exit_info[exit_num].poly_func_reg]; in zend_jit_trace_exit()
8591 } else if (t->exit_info[exit_num].flags & (ZEND_JIT_EXIT_JITED|ZEND_JIT_EXIT_BLACKLISTED)) { in zend_jit_trace_exit()
8602 exit_num, in zend_jit_trace_exit()
8611 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_INVALIDATE) { in zend_jit_trace_exit()
8652 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_TO_VM) { in zend_jit_trace_exit()
8653 if (zend_jit_trace_exit_is_bad(trace_num, exit_num)) { in zend_jit_trace_exit()
8654 zend_jit_blacklist_trace_exit(trace_num, exit_num); in zend_jit_trace_exit()
8657 trace_num, exit_num); in zend_jit_trace_exit()
8661 } else if (JIT_G(hot_side_exit) && zend_jit_trace_exit_is_hot(trace_num, exit_num)) { in zend_jit_trace_exit()
8662 return zend_jit_trace_hot_side(execute_data, trace_num, exit_num); in zend_jit_trace_exit()