LLVM 17.0 đã được phát hành và đây là những tin tức của nó

Biểu trưng LLVM

LLVM là một khuôn khổ để phát triển các trình biên dịch cũng như giúp xây dựng các ngôn ngữ lập trình mới và cải thiện các ngôn ngữ hiện có.

Sau sáu tháng phát triển Phiên bản mới của LLVM 17.0 đã được trình làng, trong đó nhiều cải tiến, thay đổi, sửa lỗi và trên hết là nhiều khía cạnh quan trọng khác nhau đã được triển khai trong Clang 17.0.

Đối với những người không quen thuộc với LLVM, bạn nên biết rằng điều này là một trình biên dịch tương thích với GCC (trình biên dịch, trình tối ưu hóa và trình tạo mã) biên dịch các chương trình thành bitcode trung gian lệnh ảo giống như RISC (một máy ảo cấp thấp với hệ thống tối ưu hóa đa cấp).

Mã giả được tạo có thể được trình biên dịch JIT chuyển đổi thành các lệnh máy ngay tại thời điểm thực thi chương trình.

Các tính năng mới chính của LLVM 17.0

Trong phiên bản mới này của LLVM 17.0 được trình bày, có nhiều khía cạnh liên quan khác nhau cần tính đến, ví dụ như cải tiến cho phần phụ trợ X86, à, anh ấy đã thêm vàoo hỗ trợ cho các tiện ích mở rộng bản hướng dẫn kiến ​​trúc ISA SHA512, ISA SM3, ISA SM4 và ISA AVX-VNNI-INT16.

Ngoài ra, nó còn nhấn mạnh đến cải tiến trong khả năng phụ trợ cho kiến ​​trúc RISC-V đã mở rộng đáng kể, kể từ đã thêm hỗ trợ cho bộ xử lý siyear-x280.

Một trong những thay đổi khác mà chúng ta có thể tìm thấy là Đã triển khai hỗ trợ cho phần mở rộng bộ xử lý XTH*, cũng như khả năng tương thích với các tiện ích mở rộng LSX, LASX, LVZ và LBT ISA vào phần phụ trợ của kiến ​​trúc LoongArch.

Cải thiện phần phụ trợ cho kiến ​​trúc AArch64, ARM, WebAssembly, MIPS, PowerPC, AMDGPU, mở rộng khả năng của trình liên kết LLD và thêm lệnh "đăng ký thông tin" mới vào trình gỡ lỗi LLDB để hiển thị tất cả thông tin đã biết về một bản ghi.

Về những cải tiến trong Clang 17.0, cần nhấn mạnh rằng các tính năng được xác định trong C2x tiêu chuẩn C trong tương lai đã được triển khai, chẳng hạn như các từ khóa bool, static_assert, căn chỉnh, căn chỉnh và thread_local, cũng như khả năng chỉ định dấu ngoặc trống «{} » cho khởi tạo về giá trị XNUMX.

Mật mão C cung cấp khả năng chuyển tiếp biểu thức "goto" trong các khối "asm" thông qua các thẻ được chọn gián tiếp, hỗ trợ đã được thêm vào tiện ích mở rộng C cho phép sử dụng một loại thay vì biểu thức làm toán hạng đầu tiên trong "_Generic", ngoài việc cho phép các biểu thức không đổi trong ngôn ngữ C sử dụng các cấu trúc, hiệp và mảng được khai báo bằng thuộc tính "const".

Về những cải tiến liên quan đến tiêu chuẩn C++20, người ta đề cập rằng hiện nay Trên tất cả các nền tảng ngoại trừ Windows, đều có hỗ trợ đầy đủ cho Coroutines, Ngoài ra, các yêu cầu bổ sung cho hoạt động so sánh biểu thức hằng số đã được triển khai.

Nó cũng được nhấn mạnh rằng bây giờĐảm bảo phân tích cú pháp chính xác các mẫu lambda được chỉ định ngay sau các tham số mẫu và chứa một biến có loại phụ thuộc trong khối. Bảo lưu việc sử dụng dấu gạch dưới kép trong nghĩa đen của người dùng và không khuyến khích sử dụng từ khóa "toán tử" trong định nghĩa hàm với mã định danh dành riêng trong tên

Khi những cải tiến được thực hiện liên quan đến tiêu chuẩn C++ 23 , người ta đề cập rằng nó đang ở giai đoạn phê duyệt cuối cùng của ISO, vì đã thay đổi phạm vi của kiểu trả về cuối cùng trong hàm lambda để nhìn vào các móc trước tiên và sau đó là văn bản xung quanh.

Của những thay đổi khác nổi bật:

  • Đã thêm khả năng xác định mảng đa chiều bằng cách sử dụng
  • Khi biên dịch các ứng dụng C++ bằng chế độ tối ưu hóa "-O0", việc tạo mã cho các cuộc gọi đã được cải thiện.
  • Đã thêm hỗ trợ cho biến môi trường NO_COLOR để tắt màu đầu ra.
  • Các công cụ chẩn đoán và phân tích tĩnh đã được mở rộng đáng kể, ví dụ: kiểm tra tràn số nguyên đã ký mới, sửa mẫu lambda, biểu thức constexpr, so sánh con trỏ null, sử dụng cấu trúc chưa được khởi tạo, v.v. đã được thêm vào.
  • Thư viện Libc++ tiếp tục triển khai hỗ trợ cho các khả năng của tiêu chuẩn C++20 và C++23, đồng thời công việc cũng bắt đầu cung cấp hỗ trợ cho đặc tả C++26.
  • Đã thêm hỗ trợ cho biểu thức “yêu cầu cplusplus23” trong phần mô tả kết nối giữa các tệp tiêu đề và mô-đun.

Cuối cùng, nếu bạn quan tâm có thể biết thêm về nó, bạn có thể tham khảo chi tiết tại mục liên kết theo dõi.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.