Lines Matching refs:trace_buffer

619 static void zend_jit_dump_trace(zend_jit_trace_rec *trace_buffer, zend_ssa *tssa);
677 static int zend_jit_trace_add_phis(zend_jit_trace_rec *trace_buffer, uint32_t ssa_vars_count, zend_… in zend_jit_trace_add_phis() argument
689 op_array = trace_buffer->op_array; in zend_jit_trace_add_phis()
694 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_add_phis()
727 if (trace_buffer->start == ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_add_phis()
762 static int zend_jit_trace_add_call_phis(zend_jit_trace_rec *trace_buffer, uint32_t ssa_vars_count, … in zend_jit_trace_add_call_phis() argument
765 const zend_op_array *op_array = trace_buffer->op_array; in zend_jit_trace_add_call_phis()
766 const zend_op *opline = trace_buffer[1].opline; in zend_jit_trace_add_call_phis()
795 static int zend_jit_trace_add_ret_phis(zend_jit_trace_rec *trace_buffer, uint32_t ssa_vars_count, z… in zend_jit_trace_add_ret_phis() argument
797 const zend_op *opline = trace_buffer[1].opline - 1; in zend_jit_trace_add_ret_phis()
1182 static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uint32_t parent_trace,… in zend_jit_trace_build_tssa() argument
1207 op_array = trace_buffer->op_array; in zend_jit_trace_build_tssa()
1210 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_build_tssa()
1336 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_build_tssa()
1337 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_build_tssa()
1338 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_build_tssa()
1376 op_array = trace_buffer->op_array; in zend_jit_trace_build_tssa()
1377 if (trace_buffer->start == ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_build_tssa()
1387 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP) { in zend_jit_trace_build_tssa()
1390 ssa_vars_count = zend_jit_trace_add_phis(trace_buffer, ssa_vars_count, tssa, stack); in zend_jit_trace_build_tssa()
1391 } else if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL) { in zend_jit_trace_build_tssa()
1392 ssa_vars_count = zend_jit_trace_add_call_phis(trace_buffer, ssa_vars_count, tssa, stack); in zend_jit_trace_build_tssa()
1393 } else if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_build_tssa()
1394 ssa_vars_count = zend_jit_trace_add_ret_phis(trace_buffer, ssa_vars_count, tssa, stack); in zend_jit_trace_build_tssa()
1397 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_build_tssa()
1448 op_array = trace_buffer->op_array; in zend_jit_trace_build_tssa()
1451 if (trace_buffer->start == ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_build_tssa()
1472 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_build_tssa()
1473 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_build_tssa()
1474 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_build_tssa()
1522 op_array = trace_buffer->op_array; in zend_jit_trace_build_tssa()
1529 if (trace_buffer->start == ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_build_tssa()
1543 if (op_array->arg_info && i < trace_buffer[1].opline - op_array->opcodes) { in zend_jit_trace_build_tssa()
1619 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_build_tssa()
1620 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_build_tssa()
1621 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_build_tssa()
1645 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP) { in zend_jit_trace_build_tssa()
1651 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_build_tssa()
2534 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_build_tssa()
2535 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_build_tssa()
2536 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_build_tssa()
2540 op_array = trace_buffer->op_array; in zend_jit_trace_build_tssa()
2631 trace_buffer->op_array->scope ? ZSTR_VAL(trace_buffer->op_array->scope->name) : "", in zend_jit_trace_build_tssa()
2632 trace_buffer->op_array->scope ? "::" : "", in zend_jit_trace_build_tssa()
2633 trace_buffer->op_array->function_name ? in zend_jit_trace_build_tssa()
2634 ZSTR_VAL(trace_buffer->op_array->function_name) : "$main", in zend_jit_trace_build_tssa()
2635 ZSTR_VAL(trace_buffer->op_array->filename), in zend_jit_trace_build_tssa()
2636 trace_buffer[1].opline->lineno); in zend_jit_trace_build_tssa()
2640 zend_jit_trace_star_desc(trace_buffer->start), in zend_jit_trace_build_tssa()
2641 trace_buffer->op_array->scope ? ZSTR_VAL(trace_buffer->op_array->scope->name) : "", in zend_jit_trace_build_tssa()
2642 trace_buffer->op_array->scope ? "::" : "", in zend_jit_trace_build_tssa()
2643 trace_buffer->op_array->function_name ? in zend_jit_trace_build_tssa()
2644 ZSTR_VAL(trace_buffer->op_array->function_name) : "$main", in zend_jit_trace_build_tssa()
2645 ZSTR_VAL(trace_buffer->op_array->filename), in zend_jit_trace_build_tssa()
2646 trace_buffer[1].opline->lineno); in zend_jit_trace_build_tssa()
2648 zend_jit_dump_trace(trace_buffer, tssa); in zend_jit_trace_build_tssa()
2649 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LINK) { in zend_jit_trace_build_tssa()
2650 uint32_t idx = trace_buffer[1].last; in zend_jit_trace_build_tssa()
2651 uint32_t link_to = zend_jit_find_trace(trace_buffer[idx].opline->handler); in zend_jit_trace_build_tssa()
2658 zend_jit_trace_stop_description[trace_buffer->stop]); in zend_jit_trace_build_tssa()
2705 static zend_lifetime_interval** zend_jit_trace_allocate_registers(zend_jit_trace_rec *trace_buffer,… in zend_jit_trace_allocate_registers() argument
2746 op_array = trace_buffer->op_array; in zend_jit_trace_allocate_registers()
2759 if (trace_buffer->start != ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_allocate_registers()
2785 if (trace_buffer->start == ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_allocate_registers()
2793 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_allocate_registers()
2794 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_allocate_registers()
2795 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_allocate_registers()
2811 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace_allocate_registers()
3094 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_allocate_registers()
3095 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_allocate_registers()
3096 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_allocate_registers()
3108 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP) { in zend_jit_trace_allocate_registers()
3176 i = trace_buffer->op_array->last_var; in zend_jit_trace_allocate_registers()
3177 if (trace_buffer->start != ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_allocate_registers()
3178 i += trace_buffer->op_array->T; in zend_jit_trace_allocate_registers()
3203 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_allocate_registers()
3204 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_allocate_registers()
3205 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_allocate_registers()
3360 i = trace_buffer->op_array->last_var; in zend_jit_trace_allocate_registers()
3361 if (trace_buffer->start != ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace_allocate_registers()
3362 i += trace_buffer->op_array->T; in zend_jit_trace_allocate_registers()
3376 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace_allocate_registers()
3377 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace_allocate_registers()
3378 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace_allocate_registers()
3985 static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t parent_trace, uint32_t… in zend_jit_trace() argument
4025 JIT_G(current_trace) = trace_buffer; in zend_jit_trace()
4029 …ssa = zend_jit_trace_build_tssa(trace_buffer, parent_trace, exit_num, script, op_arrays, &num_op_a… in zend_jit_trace()
4040 ra = zend_jit_trace_allocate_registers(trace_buffer, ssa, parent_trace, exit_num); in zend_jit_trace()
4043 p = trace_buffer; in zend_jit_trace()
4112 if (trace_buffer->start != ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace()
4141 && (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace()
4142 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace()
4143 || (trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET in zend_jit_trace()
4156 } else if (trace_buffer->start == ZEND_JIT_TRACE_START_ENTER in zend_jit_trace()
4165 && (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace()
4166 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace()
4167 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) in zend_jit_trace()
4191 && trace_buffer->stop != ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace()
4192 && trace_buffer->stop != ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace()
4218 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_trace()
4219 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_trace()
4220 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace()
4275 if (ra && trace_buffer->stop != ZEND_JIT_TRACE_STOP_LOOP) { in zend_jit_trace()
4278 if (trace_buffer->start != ZEND_JIT_TRACE_START_ENTER) { in zend_jit_trace()
6903 if (trace_buffer->stop != ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_trace()
6908 … uint32_t exit_point = zend_jit_trace_get_exit_point(trace_buffer[1].opline, ZEND_JIT_EXIT_TO_VM); in zend_jit_trace()
7013 rec_op_array = op_array = trace_buffer->op_array; in zend_jit_trace()
7016 p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE; in zend_jit_trace()
7147 static zend_jit_trace_stop zend_jit_compile_root_trace(zend_jit_trace_rec *trace_buffer, const zend… in zend_jit_compile_root_trace() argument
7180 t->op_array = trace_buffer[0].op_array; in zend_jit_compile_root_trace()
7181 t->opline = trace_buffer[1].opline; in zend_jit_compile_root_trace()
7188 handler = zend_jit_trace(trace_buffer, 0, 0); in zend_jit_compile_root_trace()
7408 static void zend_jit_dump_trace(zend_jit_trace_rec *trace_buffer, zend_ssa *tssa) in zend_jit_dump_trace() argument
7410 zend_jit_trace_rec *p = trace_buffer; in zend_jit_dump_trace()
7413 uint32_t level = 1 + trace_buffer[0].level; in zend_jit_dump_trace()
7423 if (trace_buffer->start == ZEND_JIT_TRACE_START_ENTER) { in zend_jit_dump_trace()
7435 if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP in zend_jit_dump_trace()
7436 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL in zend_jit_dump_trace()
7437 || trace_buffer->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) { in zend_jit_dump_trace()
7694 zend_jit_trace_rec trace_buffer[ZEND_JIT_TRACE_MAX_LENGTH]; in zend_jit_trace_hot_root() local
7738 stop = zend_jit_trace_execute(execute_data, opline, trace_buffer, in zend_jit_trace_hot_root()
7747 if (UNEXPECTED(trace_buffer[1].opline != orig_opline)) { in zend_jit_trace_hot_root()
7748 orig_opline = trace_buffer[1].opline; in zend_jit_trace_hot_root()
7749 op_array = (zend_op_array*)trace_buffer[0].op_array; in zend_jit_trace_hot_root()
7753 const zend_op_array *op_array = trace_buffer[0].op_array; in zend_jit_trace_hot_root()
7754 const zend_op *opline = trace_buffer[1].opline; in zend_jit_trace_hot_root()
7772 zend_jit_dump_trace(trace_buffer, NULL); in zend_jit_trace_hot_root()
7778 uint32_t idx = trace_buffer[1].last; in zend_jit_trace_hot_root()
7779 uint32_t link_to = zend_jit_find_trace(trace_buffer[idx].opline->handler); in zend_jit_trace_hot_root()
7789 stop = zend_jit_compile_root_trace(trace_buffer, orig_opline, offset); in zend_jit_trace_hot_root()
7890 static zend_jit_trace_stop zend_jit_compile_side_trace(zend_jit_trace_rec *trace_buffer, uint32_t p… in zend_jit_compile_side_trace() argument
7932 handler = zend_jit_trace(trace_buffer, parent_num, exit_num); in zend_jit_compile_side_trace()
8029 zend_jit_trace_rec trace_buffer[ZEND_JIT_TRACE_MAX_LENGTH]; in zend_jit_trace_hot_side() local
8077 …stop = zend_jit_trace_execute(execute_data, EX(opline), trace_buffer, ZEND_JIT_TRACE_START_SIDE, i… in zend_jit_trace_hot_side()
8085 if (UNEXPECTED(trace_buffer->start != ZEND_JIT_TRACE_START_SIDE)) { in zend_jit_trace_hot_side()
8087 const zend_op_array *op_array = trace_buffer[0].op_array; in zend_jit_trace_hot_side()
8088 const zend_op *opline = trace_buffer[1].opline; in zend_jit_trace_hot_side()
8106 zend_jit_dump_trace(trace_buffer, NULL); in zend_jit_trace_hot_side()
8112 uint32_t idx = trace_buffer[1].last; in zend_jit_trace_hot_side()
8113 uint32_t link_to = zend_jit_find_trace(trace_buffer[idx].opline->handler);; in zend_jit_trace_hot_side()
8123 if (EXPECTED(trace_buffer->start == ZEND_JIT_TRACE_START_SIDE)) { in zend_jit_trace_hot_side()
8124 stop = zend_jit_compile_side_trace(trace_buffer, parent_num, exit_num, polymorphism); in zend_jit_trace_hot_side()
8126 const zend_op_array *op_array = trace_buffer[0].op_array; in zend_jit_trace_hot_side()
8129 const zend_op *opline = trace_buffer[1].opline; in zend_jit_trace_hot_side()
8131 stop = zend_jit_compile_root_trace(trace_buffer, opline, jit_extension->offset); in zend_jit_trace_hot_side()