Trình biên dịch GCC 10.1 có ở đây và đây là những điểm mới chính của nó

Sau một năm phát triển việc phát hành phiên bản mới đã được xuất bản từ bộ miễn phí Trình biên dịch GCC 10.1, đây là bản phát hành quan trọng đầu tiên trong nhánh mới của GCC 10.x.

Theo sơ đồ đánh số phiên bản mới, phiên bản 10.0 được sử dụng trong quá trình phát triển và không lâu trước khi phát hành GCC 10.1, nhánh GCC 11.0 đã được phân nhánh, trên cơ sở đó sẽ hình thành phiên bản tiếp theo có ý nghĩa của GCC 11.1 .

Đối với những người không quen với GCC (Bộ sưu tập trình biên dịch GNU), bạn nên biết rằng đĐây là một tập hợp các trình biên dịch được tạo bởi dự án GNU, là phần mềm miễn phí và được phân phối bởi Tổ chức Phần mềm Tự do (FSF) theo giấy phép chung GPL.

Các trình biên dịch này được sử dụng rộng rãi trên hầu hết các hệ thống Unix đến mức chúng được coi là tiêu chuẩn cho hệ điều hành Unix và các dẫn xuất của mã nguồn mở và cũng thuộc sở hữu độc quyền, chẳng hạn như Mac OS X.

GCC yêu cầu tập hợp các ứng dụng được gọi là binutils để thực hiện các tác vụ như xác định tệp đối tượng hoặc lấy kích thước của chúng để sao chép, dịch hoặc tạo danh sách, liên kết chúng hoặc xóa các ký hiệu không cần thiết.

Có gì mới trong GCC 10.1

GCC 10.1 nổi bật với việc triển khai nhiều cải tiến của ngôn ngữ C ++ được phát triển cho tiêu chuẩn C ++ 20, các cải tiến liên quan đến tiêu chuẩn ngôn ngữ C trong tương lai (C2x), tối ưu hóa mới trong phụ trợ trình biên dịch và hỗ trợ thử nghiệm cho chế độ phân tích tĩnh.

Đối với các ngôn ngữ C, C ++ và Fortran, đặc tả lập trình song song OpenACC 2.6 được triển khai, xác định các công cụ tải xuống trên GPU và bộ xử lý chuyên dụng như NVIDIA PTX.

Việc thực hiện tiêu chuẩn Mở MP 5.0 (Đa xử lý mở), xác định API và các phương pháp sử dụng các phương pháp lập trình song song trong các hệ thống đa lõi và kết hợp (CPU + GPU / DSP) với bộ nhớ dùng chung và đơn vị vectơ hóa (SIMD), nó gần như hoàn thành.

Các tính năng được thêm vào dưới dạng biểu thức điều kiện lastprivate, chỉ thị quét và vòng lặp, thứ tự và biểu thức use_device_addr. Đối với OpenMP và OpenACC, nó đã được thêm vào hỗ trợ tải xuống trên GPU AMD Radeon thế hệ thứ XNUMX và thứ XNUMX.

Đối với ngôn ngữ C, chức năng "truy cập" đã được thêm vào để mô tả quyền truy cập vào chức năng của các đối tượng được truyền bởi tham chiếu hoặc con trỏ và liên kết các đối tượng này với các đối số nguyên chứa thông tin về kích thước của các đối tượng.

Để hoạt động cùng với "quyền truy cập", thuộc tính "kiểu" được triển khai để phát hiện truy cập không chính xác từ các chức năng của người dùng, ví dụ: khi ghi giá trị vào một vùng bên ngoài giới hạn của mảng. Thuộc tính symver cũng đã được thêm vào để liên kết các ký tự trong tệp ELF với các số phiên bản cụ thể.

Đối với C ++, khoảng 16 thay đổi và cải tiến đã được thực hiện được phát triển theo tiêu chuẩn C ++ 20 bao gồm từ khóa "constinit" đã thêm và triển khai hỗ trợ để mở rộng các mẫu «khái niệm»Điều đó cho phép bạn xác định một tập hợp các yêu cầu đối với các tham số mẫu, mà trong quá trình biên dịch sẽ giới hạn tập hợp các đối số có thể được lấy làm tham số mẫu.

Cũng thế tối ưu hóa liên thủ tục nâng cao được đánh dấu, IPA-SRA đã được thiết kế lại để hoạt động trong quá trình ràng buộc và trong số những thứ khác giờ đây loại bỏ các giá trị được tính toán và trả về không sử dụng.

Trong chế độ tối ưu hóa "-O2", tùy chọn "-finline-functions" được bật, được cấu hình lại cho mã nhỏ gọn hơn là cho hiệu suất.

Các tối ưu hóa liên kết nâng cao (LTO), svà thêm một tệp thực thi mới lto-dump để kết xuất thông tin trên các tệp đối tượng mã hóa byte LTO. Trong các lần truyền song song LTO, số lượng tác vụ thực thi đồng thời có thể được xác định tự động và nếu không xác định được điều này, hãy sử dụng thông tin về số lõi CPU làm hệ số song song.

Cơ chế tối ưu hóa đã được cải thiện và dựa trên kết quả của Code Profiling (PGO), tạo ra mã tối ưu hơn dựa trên phân tích các đặc điểm của việc thực thi mã.

Nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra chi tiết của bản phát hành này Trong liên kết sau đây. 


Để 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: Miguel Ángel Gatón
  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.