GCC 10.1 kompilyatori bu erda va bu uning asosiy yangiliklari

Bir yillik rivojlanishdan so'ng yangi versiyasi chiqarildi bepul to'plamdan GCC 10.1 kompilyatorlari, bu GCC 10.x yangi filialidagi birinchi muhim nashr.

Yangi versiyani raqamlash sxemasiga ko'ra, 10.0 versiyasi ishlab chiqish jarayonida ishlatilgan va GCC 10.1 chiqarilishidan bir oz oldin GCC 11.0 filiali allaqachon tarvaqaylab qo'yilgan bo'lib, shu asosda keyingi versiyasi shakllanadi. .

GCC (GNU Compiler Collection) bilan tanish bo'lmaganlar uchun siz buni bilishingiz kerakBu GNU loyihasi tomonidan yaratilgan kompilyatorlar to'plami, bepul dasturiy ta'minotdir va GPL umumiy ommaviy litsenziyasi asosida Free Software Foundation (FSF) tomonidan tarqatiladi.

Ushbu kompilyatorlar ko'pgina Unix tizimlarida keng qo'llaniladi ular Unix operatsion tizimlari va ochiq manbali derivativlar uchun standart, shuningdek Mac OS X kabi mulkiy hisoblanadi.

GCC ob'ekt fayllarini aniqlash yoki nusxalash, tarjima qilish yoki ro'yxatlarni yaratish, ularni bog'lash yoki keraksiz belgilarni olib tashlash uchun ularning hajmini olish kabi vazifalarni bajarish uchun binutil deb nomlanuvchi dasturlar to'plamini talab qiladi.

GCC 10.1-dagi yangiliklar

GCC 10.1 C ++ tilining ko'plab yangiliklarini amalga oshirish uchun ajralib turadi C ++ 20 standarti uchun ishlab chiqilgan, kelajakdagi C til standarti (C2x) bilan bog'liq yaxshilanishlar, kompilyatorning orqa tomonidagi yangi optimallashtirish va eksperimental yordam statik tahlil rejimi uchun.

C, C ++ va Fortran tillari uchun OpenACC 2.6 parallel dasturlash spetsifikatsiyasi amalga oshiriladi, bu GPU va NVIDIA PTX kabi ixtisoslashgan protsessorlarda yuklab olish vositalarini belgilaydi.

Standartni amalga oshirish MP 5.0 ni oching (Open Multi-Processing), bu API va ko'p yadroli va gibrid tizimlarda (CPU + GPU / DSP) parallel dasturlash usullarini umumiy xotira va vektorizatsiya birliklari (SIMD) bilan ishlatish usullarini belgilaydi, u deyarli tugadi.

Xususiyatlar shartli iboralar sifatida qo'shiladi lastprivate, skanerlash va tsikl bo'yicha ko'rsatmalar, buyurtma va use_device_addr iboralari. OpenMP va OpenACC uchun, qo'shildi XNUMX va XNUMX avlod AMD Radeon GPU-larida yuklab olishni qo'llab-quvvatlash.

C tillari uchun "kirish" funktsiyasi mos yozuvlar yoki ko'rsatgich orqali uzatiladigan ob'ektlar funktsiyasiga kirishni tavsiflash va ushbu ob'ektlarni ob'ektlarning kattaligi to'g'risida ma'lumotlarni o'z ichiga olgan tamsayı argumentlar bilan bog'lash uchun qo'shilgan.

"Kirish" bilan birgalikda ishlash uchun "tip" atributi foydalanuvchi funktsiyalaridan noto'g'ri kirishni aniqlash uchun amalga oshiriladi, masalan, qator chegaralaridan tashqaridagi maydonga qiymatlarni yozishda. Symver atributi ELF faylidagi belgilarni ma'lum versiya raqamlariga bog'lash uchun qo'shilgan.

C ++ uchun 16 ga yaqin o'zgarishlar va yangiliklar amalga oshirildi C ++ 20 standartida ishlab chiqilgan shu jumladan "constinit" kalit so'zi shablonlarni kengaytirish uchun qo'shilgan va amalga oshirilgan «Tushunchasi»Bu shablon parametrlariga talablar to'plamini belgilashga imkon beradi, bu esa kompilyatsiya paytida shablon parametrlari sifatida qabul qilinishi mumkin bo'lgan argumentlar to'plamini cheklaydi.

Keyinchalik takomillashtirilgan protseduralararo optimallashtirish ta'kidlangan, IPA-SRA bog'lash vaqtida ishlash uchun qayta ishlangan va boshqa narsalar qatorida foydalanilmagan hisoblangan va qaytarilgan qiymatlarni olib tashlaydi.

"-O2" optimallashtirish rejimida "-finline-functions" opsiyasi yoqilgan bo'lib, u ishlashga qaraganda ixchamroq kod uchun qayta tuzilgan.

The rivojlangan bog'lanishni optimallashtirish (LTO), sva ma'lumotni tashlab yuborish uchun yangi bajariladigan lto-dump faylini qo'shdi LTO bayt kodli ob'ekt fayllarida. LTO parallel o'tishlarida bir vaqtning o'zida bajariladigan vazifalar soni avtomatik ravishda aniqlanishi mumkin va agar buni aniqlash mumkin bo'lmasa, parallel yadro koeffitsienti sifatida protsessor yadrolari soni to'g'risidagi ma'lumotlardan foydalaning.

Optimallashtirish mexanizmi takomillashtirildi va kodni bajarish xususiyatlarini tahlil qilish asosida yanada maqbul kod ishlab chiqaradigan Kodlarni profillash (PGO) natijalariga asoslanadi.

Agar siz bu haqda ko'proq bilmoqchi bo'lsangiz, ushbu nashrning tafsilotlarini tekshirishingiz mumkin Quyidagi havolada. 


Maqolaning mazmuni bizning printsiplarimizga rioya qiladi muharrirlik etikasi. Xato haqida xabar berish uchun bosing bu erda.

Birinchi bo'lib izohlang

Fikringizni qoldiring

Sizning email manzilingiz chop qilinmaydi.

*

*

  1. Ma'lumotlar uchun javobgardir: Migel Anxel Gaton
  2. Ma'lumotlarning maqsadi: SPAMni boshqarish, izohlarni boshqarish.
  3. Qonuniylashtirish: Sizning roziligingiz
  4. Ma'lumotlar haqida ma'lumot: qonuniy majburiyatlar bundan mustasno, ma'lumotlar uchinchi shaxslarga etkazilmaydi.
  5. Ma'lumotlarni saqlash: Occentus Networks (EU) tomonidan joylashtirilgan ma'lumotlar bazasi
  6. Huquqlar: istalgan vaqtda siz ma'lumotlaringizni cheklashingiz, tiklashingiz va o'chirishingiz mumkin.