Trình biên dịch GCC GNU thêm hỗ trợ C++17

Ngoc Huynh

Các phiên bản phát hành GCC 7x mang đến những cải tiến chẩn đoán lỗi (diagnostics) cũng như nâng cao khả năng biên dịch và hiệu suất runtime.

Phiên bản 7.1 của GCC (GNU Compiler Collection) mới được phát hành gần đây, đã thêm sự hỗ trợ C++17 và các cải tiến chẩn đoán lỗi.

Cụ thể, phiên bản 7.1 có C++ front-end với sự hỗ trợ thử nghiệm dành cho tất cả dự thảo chi tiết kỹ thuật của C++ 17. Các lựa chọn -std=c++1z và -std=gnu++1z và libstdc++ đều được hỗ trợ, và thư viện có hầu hết các dự thảo tính năng library của C++17 cũng được thực thi. Trong khi đó, bản phát hành GCC 6.1 ban đầu lại tuân theo tiêu chuẩn C++14.

Dòng GCC 7 khác với các bản phát hành trước ở chỗ sử dụng LRA (Local Register Allocator) mặc định cho các targets mới và loại bỏ các Cilk+ extension dành cho ngôn ngữ lập trình C và C++. Ngoài ra, nó còn nâng cao khả năng biên dịch hoặc hiện suất runtime. Tuy nhiên, một số thay đổi có thể “gây ra nỗi sầu khổ” khi thực hiện port sang GCC 7. GCC 7 không còn chấp nhận các cấu tạo (constructs) nghèo nàn liên quan đến việc sử dụng các template.

GCC cũng thúc đẩy các chẩn đoán (diagnostics) được phát ra, trong đó có improved locations, và các cải tiến dành cho optimizer xuất hiện trong tất cả các tối ưu hóa intra- và interprocedural, liên kết các tối ưu hóa thời gian, và các target back ends khác nhau, chẳng hạn như bổ sung các cải tiến của store merging pass, code-hoisting optimization, loop splitting (một kỹ thuật tối ưu hóa trình biên dịch), và shrink-wrapping. GCC có thể được lập cấu hình cho OpenMP API để giảm tải sang Nvidia PTX GPGPUs, nhưng có một số code được biên dịch bằng các phiên bản GCC cũ hơn có thể cần điều chỉnh lại. Bản phát hành mới bao gồm các front end của C, C++, Objective-C, Fortran, Ada, và Go.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.infoworld.com