IR JIT: too long jmp distance in ir_add_veneer, ir_aarch64.dasc:6495.
Đang mở
@dstogov đang làm issue này rồi.
Từ ngày 19/2/2025.
Bug
Category: JIT
Extension: opcache
Status: Needs Triage
- Ngôn ngữ chính
- C
- Star
- 40.4k
- Fork
- 8.2k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 96
Mô tả
Description
Running ./psalm --no-cache in https://github.com/vimeo/psalm/tree/preload_all_classes_tmp on aarch64 (mac OS 15.3.1, not reproducible on linux aarch64 on a KVM in the same machine) triggers the following assertion:
Assertion failed: (0 && "too long jmp distance"), function ir_add_veneer, file ir_aarch64.dasc, line 6495.
On 3b23de31db969c3c12060ff7c5ba363f65de6669, the following assertion is triggered instead:
Assertion failed: (_blocks[use] == b || use_insn->op == IR_PARAM), function ir_schedule, file ir_gcm.c, line 948.
The issue is triggered by the large number of class_exists statements in src/Psalm/Internal/Preloader.php, reducing the number to < ~1020 fixes the issue.
PHP Version
PHP 8.4.4 or 3b23de31db969c3c12060ff7c5ba363f65de6669
Operating System
Mac OS 15.3.1
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Đánh giá
Issue này chưa được đánh giá.