Penyusun GCC 10.1 ada di sini dan ini adalah perkara baru

Selepas setahun pembangunan keluaran versi baru diterbitkan dari set percuma Penyusun GCC 10.1, ini merupakan keluaran pertama yang signifikan di cabang baru GCC 10.x.

Menurut skema penomboran versi baru, versi 10.0 digunakan selama proses pengembangan dan tidak lama sebelum pelepasan GCC 10.1, cawangan GCC 11.0 sudah dicabut, berdasarkan versi mana yang akan dibentuk. .

Bagi mereka yang tidak biasa dengan GCC (GNU Compiler Collection) perlu mengetahui bahawa eIni adalah satu set penyusun yang dibuat oleh projek GNU, adalah perisian percuma dan diedarkan oleh Yayasan Perisian Percuma (FSF) di bawah lesen masyarakat umum GPL.

Penyusun ini banyak digunakan pada kebanyakan sistem Unix sehingga tahap tersebut dianggap sebagai standard untuk sistem operasi Unix dan turunan sumber terbuka dan juga hak milik, seperti Mac OS X.

GCC memerlukan sekumpulan aplikasi yang dikenali sebagai binutil untuk melakukan tugas seperti mengenal pasti fail objek atau mendapatkan ukurannya untuk menyalin, menerjemahkan, atau menyenaraikan, menghubungkan, atau menghapus simbol yang tidak perlu.

Apa yang baru dalam GCC 10.1

GCC 10.1 menonjol untuk pelaksanaan banyak inovasi bahasa C ++ dibangunkan untuk standard C ++ 20, penambahbaikan yang berkaitan dengan standard bahasa C masa depan (C2x), pengoptimuman baru dalam sokongan penyusun dan sokongan eksperimen untuk mod analisis statik.

Untuk bahasa C, C ++ dan Fortran, spesifikasi pengaturcaraan selari OpenACC 2.6 dilaksanakan, yang menentukan alat muat turun pada GPU dan pemproses khusus seperti NVIDIA PTX.

Pelaksanaan standard Buka MP 5.0 (Open Multi-Processing), yang menentukan API dan kaedah untuk menggunakan kaedah pengaturcaraan selari dalam sistem multi-teras dan hibrid (CPU + GPU / DSP) dengan memori bersama dan unit vektorisasi (SIMD), ia hampir selesai.

Ciri-ciri ditambah sebagai ungkapan bersyarat arahan peribadi, imbasan dan gelung terakhir, pesanan dan ungkapan_device_addr. Untuk OpenMP dan OpenACC, ia ditambah sokongan untuk dimuat turun pada GPU AMD Radeon generasi ke-XNUMX dan ke-XNUMX.

Untuk bahasa C, fungsi "akses" telah ditambahkan untuk menggambarkan akses ke fungsi objek yang dilalui oleh rujukan atau penunjuk dan untuk mengaitkan objek-objek ini dengan argumen integer yang berisi maklumat mengenai ukuran objek.

Untuk bekerja bersama dengan "akses", atribut "type" dilaksanakan untuk mengesan akses yang salah dari fungsi pengguna, misalnya, ketika menulis nilai ke kawasan di luar batas larik. Atribut symver juga telah ditambahkan untuk menghubungkan watak-watak dalam fail ELF ke nombor versi tertentu.

Untuk C ++, kira-kira 16 perubahan dan inovasi telah dilaksanakan dibangunkan dalam standard C ++ 20 termasuk kata kunci "constinit" menambah dan melaksanakan sokongan untuk mengembangkan templat «konsep»Itu membolehkan anda menentukan sekumpulan syarat untuk parameter templat, yang selama penyusunan membatasi kumpulan argumen yang dapat diambil sebagai parameter templat.

Juga pengoptimuman interprosedural yang dipertingkatkan diserlahkan, IPA-SRA telah didesain semula untuk berfungsi semasa mengikat dan antara lain sekarang membuang nilai yang dikira dan dikembalikan yang tidak digunakan.

Dalam mod pengoptimuman "-O2", pilihan "-finline-functions" diaktifkan, yang dikonfigurasi ulang untuk kod yang lebih ringkas daripada prestasi.

The pengoptimuman pautan yang dipertingkatkan (LTO), sdan menambah fail lto-dump baru yang boleh dilaksanakan untuk membuang maklumat pada fail objek berkod byte LTO. Dalam lulus selari LTO, adalah mungkin untuk menentukan secara automatik jumlah tugas pelaksanaan serentak dan, jika ini tidak dapat ditentukan, untuk menggunakan maklumat mengenai bilangan teras CPU sebagai faktor paralelisasi.

Mekanisme pengoptimuman ditingkatkan dan didasarkan pada hasil Code Profiling (PGO), yang menghasilkan kod yang lebih optimum berdasarkan analisis ciri pelaksanaan kod.

Sekiranya anda ingin mengetahui lebih lanjut mengenainya, anda boleh menyemak perincian siaran ini Dalam pautan berikut.