GCC 10.1 компиляторы осында және оның басты жаңалықтары

Бір жыл дамығаннан кейін жаңа нұсқасы жарық көрді ақысыз жиынтықтан GCC 10.1 компиляторлары, бұл GCC 10.x жаңа филиалындағы алғашқы маңызды шығарылым.

Жаңа нұсқаны нөмірлеу схемасына сәйкес, 10.0 нұсқасы әзірлеу процесінде қолданылды және GCC 10.1 шығарылғанға дейін, GCC 11.0 тармағы бұтақталды, соның негізінде келесі нұсқасы қалыптасады. .

GCC-мен (GNU Compiler Collection) таныс емес адамдар үшін сіз электронды поштаны білуіңіз керекБұл GNU жобасы құрған компиляторлар жиынтығы, ақысыз бағдарламалық жасақтама болып табылады және GPL жалпыға ортақ лицензиясы бойынша Еркін Бағдарламалық жасақтама қорымен (FSF) таратылады.

Бұл компиляторлар Unix жүйелерінің көпшілігінде кеңінен қолданылады оларды Unix операциялық жүйелері мен ашық туынды туындылары үшін стандарт ретінде қарастыратын дәрежеде, сонымен қатар Mac OS X сияқты меншікті.

GCC объектілік файлдарды анықтау немесе көшіру, аудару немесе тізімдер жасау, оларды байланыстыру немесе қажет емес белгілерді алып тастау үшін олардың көлемін алу сияқты тапсырмаларды орындау үшін бинутилдер деп аталатын бағдарламалар жиынтығын қажет етеді.

GCC 10.1-де қандай жаңалықтар бар

GCC 10.1 C ++ тілінің көптеген инновацияларын жүзеге асырумен ерекшеленеді C ++ 20 стандарты үшін жасалған, C тілінің болашақ стандартына (C2x) байланысты жақсартулар, компилятордың артқы жағындағы және эксперименттік қолдаудағы жаңа оңтайландыру статикалық талдау режимі үшін.

C, C ++ және Fortran тілдері үшін OpenACC 2.6 параллель бағдарламалау спецификасы енгізілген, ол жүктеу құралдарын GPU-да және NVIDIA PTX сияқты мамандандырылған процессорларда анықтайды.

Стандартты енгізу OpenMP 5.0 (Open Multi-Processing), API және параллель бағдарламалау әдістерін көп ядролы және гибридті жүйелерде (CPU + GPU / DSP) ортақ жады және векторлау блоктарымен (SIMD) қолдану әдістерін анықтайтын, ол аяқталды десе болады.

Ерекшеліктер шартты өрнектер ретінде қосылады соңғы директивалар, сканерлеу және цикл директивалары, бұйрықтар және пайдалану_device_addr өрнектер. OpenMP және OpenACC үшін, ол қосылды AMD Radeon GPU XNUMX-ші және XNUMX-ші буындарына жүктеуді қолдау.

С тілдері үшін сілтеме немесе сілтеме арқылы берілген объектілердің қызметіне қол жетімділікті сипаттайтын және осы объектілерді объектілердің өлшемдері туралы ақпаратты қамтитын бүтін аргументтермен байланыстыратын «қатынау» функциясы қосылды.

«Қол жетімділікпен» бірге жұмыс істеу үшін «тип» атрибуты пайдаланушының функцияларынан дұрыс емес қатынасты анықтау үшін жүзеге асырылады, мысалы, массивтің шегінен тыс аймаққа мәндер жазу кезінде. Симвер төлсипаты ELF файлындағы таңбаларды нақты нұсқа нөмірлерімен байланыстыру үшін қосылды.

C ++ үшін шамамен 16 өзгертулер мен инновациялар енгізілді C ++ 20 стандартында жасалған «constinit» кілт сөзін қоса шаблондарды кеңейтуге қолдау қосып, жүзеге асырды «түсінік»Бұл компиляция кезінде шаблон параметрлері ретінде қабылдануы мүмкін аргументтер жиынтығын шектейтін шаблон параметрлеріне қойылатын талаптардың жиынтығын анықтауға мүмкіндік береді.

Әрі қарай жақсартылған процедуралық оңтайландыру, IPA-SRA байланыстыру кезінде жұмыс жасау үшін қайта жасақталды және басқалармен бірге пайдаланылмаған есептелген және қайтарылған мәндерді жояды.

«-O2» оңтайландыру режимінде «-finline-functions» опциясы қосылады, ол өнімділікке қарағанда ықшам код үшін қайта конфигурацияланған.

The сілтемені жақсарту (LTO), sақпарат тастауға жаңа орындалатын файл lto-dump файлын қосты LTO байтпен кодталған нысан файлдарында. LTO параллельді өтуінде қатар орындалатын тапсырмалардың санын автоматты түрде анықтауға болады және егер оны анықтау мүмкін болмаса, параллельдеу коэффициенті ретінде CPU ядроларының саны туралы ақпаратты қолданыңыз.

Оңтайландыру механизмі жетілдірілді және кодты орындау сипаттамаларын талдауға негізделген неғұрлым оңтайлы кодты жасайтын кодтарды құру (PGO) нәтижелеріне негізделген.

Егер сіз бұл туралы көбірек білгіңіз келсе, сіз осы шығарылымның егжей-тегжейін тексере аласыз Келесі сілтемеде. 


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.