Lines Matching refs:exit_num
1300 …_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
1700 parent_vars_count = MIN(zend_jit_traces[parent_trace].exit_info[exit_num].stack_size, in zend_jit_trace_build_tssa()
1705 zend_jit_traces[parent_trace].exit_info[exit_num].stack_offset; in zend_jit_trace_build_tssa()
2748 exit_num, in zend_jit_trace_build_tssa()
2824 …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
2839 zend_jit_traces[parent_trace].exit_info[exit_num].stack_size : 0; in zend_jit_trace_allocate_registers()
2842 zend_jit_traces[parent_trace].exit_info[exit_num].stack_offset : NULL; in zend_jit_trace_allocate_registers()
3480 static int zend_jit_trace_exit_needs_deoptimization(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_exit_needs_deoptimization() argument
3482 const zend_op *opline = zend_jit_traces[trace_num].exit_info[exit_num].opline; in zend_jit_trace_exit_needs_deoptimization()
3483 uint32_t flags = zend_jit_traces[trace_num].exit_info[exit_num].flags; in zend_jit_trace_exit_needs_deoptimization()
3491 stack_size = zend_jit_traces[trace_num].exit_info[exit_num].stack_size; in zend_jit_trace_exit_needs_deoptimization()
3492 …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()
4056 …st void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t parent_trace, uint32_t exit_num) in zend_jit_trace() argument
4086 (zend_jit_traces[parent_trace].exit_info[exit_num].flags & ZEND_JIT_EXIT_METHOD_CALL); in zend_jit_trace()
4101 …ssa = zend_jit_trace_build_tssa(trace_buffer, parent_trace, exit_num, script, op_arrays, &num_op_a… in zend_jit_trace()
4113 parent_trace ? &zend_jit_traces[parent_trace] : NULL, exit_num); in zend_jit_trace()
4119 ctx.ra = ra = zend_jit_trace_allocate_registers(trace_buffer, ssa, parent_trace, exit_num); in zend_jit_trace()
4145 if (zend_jit_traces[parent_trace].exit_info[exit_num].opline == NULL) { in zend_jit_trace()
4166 parent_vars_count = MIN(zend_jit_traces[parent_trace].exit_info[exit_num].stack_size, in zend_jit_trace()
4171 zend_jit_traces[parent_trace].exit_info[exit_num].stack_offset; in zend_jit_trace()
4245 zend_jit_traces[parent_trace].exit_info[exit_num].flags, in zend_jit_trace()
4246 zend_jit_traces[parent_trace].exit_info[exit_num].opline, in zend_jit_trace()
4249 zend_jit_traces[parent_trace].exit_info[exit_num].poly_func_reg, in zend_jit_trace()
6342 … polymorphic_side_trace ? zend_jit_traces[parent_trace].exit_info[exit_num].poly_func_reg : -1, in zend_jit_trace()
6343 … polymorphic_side_trace ? zend_jit_traces[parent_trace].exit_info[exit_num].poly_this_reg : -1, in zend_jit_trace()
7329 static zend_string *zend_jit_trace_escape_name(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_escape_name() argument
7336 smart_str_append_long(&buf, (zend_long)exit_num); in zend_jit_trace_escape_name()
7341 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
7352 if (!zend_jit_trace_exit_needs_deoptimization(trace_num, exit_num)) { in zend_jit_trace_exit_to_vm()
7356 name = zend_jit_trace_escape_name(trace_num, exit_num); in zend_jit_trace_exit_to_vm()
7358 if (!zend_jit_deoptimizer_start(&ctx, name, trace_num, exit_num)) { in zend_jit_trace_exit_to_vm()
7366 stack_size = zend_jit_traces[trace_num].exit_info[exit_num].stack_size; in zend_jit_trace_exit_to_vm()
7367 stack = zend_jit_traces[trace_num].exit_info[exit_num].stack_size ? in zend_jit_trace_exit_to_vm()
7368 …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()
7372 zend_jit_traces[trace_num].exit_info[exit_num].flags, in zend_jit_trace_exit_to_vm()
7373 zend_jit_traces[trace_num].exit_info[exit_num].opline, in zend_jit_trace_exit_to_vm()
7376 zend_jit_traces[trace_num].exit_info[exit_num].poly_func_reg, in zend_jit_trace_exit_to_vm()
7381 opline = zend_jit_traces[trace_num].exit_info[exit_num].opline; in zend_jit_trace_exit_to_vm()
8161 static void zend_jit_blacklist_trace_exit(uint32_t trace_num, uint32_t exit_num) in zend_jit_blacklist_trace_exit() argument
8168 …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()
8173 handler = zend_jit_trace_exit_to_vm(trace_num, exit_num); in zend_jit_blacklist_trace_exit()
8180 exit_num, in zend_jit_blacklist_trace_exit()
8183 zend_jit_traces[trace_num].exit_info[exit_num].flags |= ZEND_JIT_EXIT_BLACKLISTED; in zend_jit_blacklist_trace_exit()
8199 static bool zend_jit_trace_exit_is_bad(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_exit_is_bad() argument
8202 zend_jit_traces[trace_num].exit_counters + exit_num; in zend_jit_trace_exit_is_bad()
8211 static bool zend_jit_trace_exit_is_hot(uint32_t trace_num, uint32_t exit_num) in zend_jit_trace_exit_is_hot() argument
8214 zend_jit_traces[trace_num].exit_counters + exit_num; in zend_jit_trace_exit_is_hot()
8223 …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
8235 …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()
8267 handler = zend_jit_trace(trace_buffer, parent_num, exit_num); in zend_jit_compile_side_trace()
8330 exit_num, in zend_jit_compile_side_trace()
8338 zend_jit_traces[parent_num].exit_info[exit_num].flags |= ZEND_JIT_EXIT_JITED; in zend_jit_compile_side_trace()
8388 …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
8402 …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()
8408 trace_num, parent_num, exit_num, in zend_jit_trace_hot_side()
8429 …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()
8430 || ((zend_jit_traces[parent_num].exit_info[exit_num].flags & ZEND_JIT_EXIT_POLYMORPHISM) in zend_jit_trace_hot_side()
8433 is_megamorphic = zend_jit_traces[parent_num].exit_info[exit_num].flags & in zend_jit_trace_hot_side()
8437 } else if (exit_num == 0) { in zend_jit_trace_hot_side()
8512 stop = zend_jit_compile_side_trace(trace_buffer, parent_num, exit_num, polymorphism); in zend_jit_trace_hot_side()
8538 || zend_jit_trace_exit_is_bad(parent_num, exit_num)) { in zend_jit_trace_hot_side()
8539 zend_jit_blacklist_trace_exit(parent_num, exit_num); in zend_jit_trace_hot_side()
8542 parent_num, exit_num); in zend_jit_trace_hot_side()
8558 int ZEND_FASTCALL zend_jit_trace_exit(uint32_t exit_num, zend_jit_registers_buf *regs) in zend_jit_trace_exit() argument
8569 uint32_t stack_size = t->exit_info[exit_num].stack_size; in zend_jit_trace_exit()
8570 …zend_jit_trace_stack *stack = stack_size ? t->stack_map + t->exit_info[exit_num].stack_offset : NU… in zend_jit_trace_exit()
8572 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_RESTORE_CALL) { in zend_jit_trace_exit()
8606 const zend_op *op = t->exit_info[exit_num].opline; in zend_jit_trace_exit()
8643 EX(opline) = t->exit_info[exit_num].opline - 1; in zend_jit_trace_exit()
8645 && !(t->exit_info[exit_num].flags & ZEND_JIT_EXIT_FREE_OP1) in zend_jit_trace_exit()
8652 opline = t->exit_info[exit_num].opline; in zend_jit_trace_exit()
8655 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_FREE_OP2) { in zend_jit_trace_exit()
8663 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_FREE_OP1) { in zend_jit_trace_exit()
8673 if (t->exit_info[exit_num].flags & (ZEND_JIT_EXIT_FREE_OP1|ZEND_JIT_EXIT_FREE_OP2)) { in zend_jit_trace_exit()
8678 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_METHOD_CALL) { in zend_jit_trace_exit()
8679 ZEND_ASSERT(t->exit_info[exit_num].poly_func_reg >= 0); in zend_jit_trace_exit()
8680 zend_function *func = (zend_function*)regs->gpr[t->exit_info[exit_num].poly_func_reg]; in zend_jit_trace_exit()
8697 } else if (t->exit_info[exit_num].flags & (ZEND_JIT_EXIT_JITED|ZEND_JIT_EXIT_BLACKLISTED)) { in zend_jit_trace_exit()
8708 exit_num, in zend_jit_trace_exit()
8717 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_INVALIDATE) { in zend_jit_trace_exit()
8771 if (t->exit_info[exit_num].flags & ZEND_JIT_EXIT_TO_VM) { in zend_jit_trace_exit()
8772 if (zend_jit_trace_exit_is_bad(trace_num, exit_num)) { in zend_jit_trace_exit()
8773 zend_jit_blacklist_trace_exit(trace_num, exit_num); in zend_jit_trace_exit()
8776 trace_num, exit_num); in zend_jit_trace_exit()
8780 } else if (JIT_G(hot_side_exit) && zend_jit_trace_exit_is_hot(trace_num, exit_num)) { in zend_jit_trace_exit()
8781 return zend_jit_trace_hot_side(execute_data, trace_num, exit_num); in zend_jit_trace_exit()