ЛЛВМ 15.0 стиже са побољшањима за различите позадине, већом подршком и још много тога

ЛЛВМ 15 имплементира побољшања подршке

ЛЛВМ 15.0 такође укључује низ занимљивих ажурирања за Ц/Ц++.

После шест месеци развоја, Објављено је издање ЛЛВМ 15.0 пројекта, у којем направљено је много великих промена, као и додатну подршку за нове процесоре, архитектуре и још много тога.

За оне који нису упознати са ЛЛВМ-ом, требало би да знате да је ово је ГЦЦ компатибилан компајлер (компајлери, оптимизатори и генератори кода) који компајлирају програме у РИСЦ-сличан виртуелни инструкцијски међубит код (виртуелна машина ниског нивоа са вишестепеним оптимизационим системом).

Генерисани псеудокод може бити конвертован од стране ЈИТ компајлера у машинске инструкције само у време извршавања програма.

Главне нове карактеристике ЛЛВМ 15.0

У овој новој верзији која је представљена, истиче се да подршка за Цортек-М85 процесоре, као и за Армв9-А, Армв9.1-А и Армв9.2-А архитектуре, Армв8.1-М ПАЦБТИ-М екстензије.

Још једна промена која се истиче је та додао је експериментални ДирецтКс бацкенд да подржава ДКСИЛ формат (ДирецтКс Интермедиате Лангуаге) који се користи за ДирецтКс схадере. Позадински део је омогућен преко опције прављења „-ДЛЛВМ_ЕКСПЕРИМЕНТАЛ_ТАРГЕТС_ТО_БУИЛД=ДирецтКс“.

либц++ наставља да имплементира нове функције стандарда Ц++20 и Ц++2б, укључујући завршетак имплементације библиотеке „формат” и предложену експерименталну верзију библиотеке „опсега”.

За део измена који се односи на Цланг 15.0 помиње се да додата експериментална подршка за језик сличан Ц ХЛСЛ (Хигх-Левел Схадинг Лангуаге), који се користи за писање схадера почевши од ДирецтКс 9, као и за превођење ХЛСЛ схадера у бинарни формат ДКСИЛ (ДирецтКс Интермедиате Лангуаге) компатибилан са ДирецтКс 12, као и СПИР формат -В који користи Вулкан. Убудуће, планирају имплементацију подршке за ДКСБЦ формат (ДирецтКс битецоде) који се користи у ДирецтКс 9-11. Имплементацију обезбеђује Мицрософт и заснива се на ДирецтКс Схадер Цомпилер-у, објављеном 2017. године, изграђеном на бази ЛЛВМ 3.7.

Такође се помиње да се наставља са раде на подршци будућим Ц2Кс и Ц++23 стандардима. Имплементирано за језик Ц: атрибут норетурн, кључне речи фалсе и труе, тип _БитИнт(Н) за целе бројеве дате дубине бита, макрои *_ВИДТХ, префикс у8 за УТФ-8 знакове.

Поред тога, је имплементирано за Ц++: спајање модула, АБИ изолација чланова функције, уређена динамичка иницијализација не-локалних варијабли у модулу, вишедимензионални индексни оператори, ауто(к), нелитералне променљиве, гото и ознаке у функцијама декларисаним као цонстекпр, раздвојене излазне секвенце, именовани излазни знакови.

За системе засноване на архитектури к86, додата заставица "-фзеро-цалл-усед-регс", који обезбеђује нулирање свих ЦПУ регистара који се користе у функцији пре враћања контроле из функције. ову опцију штити од цурења података функција и смањити број блокова погодних за креирање РОП (Ретурн Ориентед Программинг) уређаја у експлоатацијама за око 20%.

Примењена је насумична локација меморијске локације структура за Ц код, што компликује екстракцију података из структура у случају експлоатације рањивости. Рандомизација се укључује и искључује помоћу атрибута рандомизе_лаиоут и но_рандомизе_лаиоут и захтева да се семе подеси са заставицом "-франдомизе-лаиоут-сеед" или "-франдомизе-лаиоут-сеед-филе" како би се обезбедиле поновљиве верзије.

Од осталих промена који се истичу:

  • Проширене могућности везане за ОпенЦЛ и ОпенМП подршку. Додата подршка за ОпенЦЛ екстензију цл_кхр_субгроуп_ротате.
  • Побољшана позадина за к86, ПоверПЦ и РИСЦ-В архитектуре.
    Побољшане могућности ЛЛД линкера и ЛЛДБ дебагера.
  • Додата ознака "-фстрицт-флек-арраис=" » помоћу којих можете да контролишете границе меког елемента низа у структурама (меки чланови низа, низ неодређене величине на крају структуре).
  • Додата је опција „-варраи-параметер“ за упозорење о надјачавању функција са неусклађеним декларацијама аргумената повезаних са низовима фиксне и променљиве дужине.
  • Побољшана компатибилност са МСВЦ-ом.
  • Додата подршка за „#прагма функцију и „#прагма аллоц_тект“ у МСВЦ-у.
  • Додата подршка за МСВЦ компатибилне /ЈМЦ и /ЈМЦ заставице.
  • Додата „-м[но-]рдпру“ заставица за контролу коришћења РДПРУ инструкције, подржане од АМД Зен2 процесора.
  • Додата је ознака "-мфунцтион-ретурн=тхунк-ектерн" за заштиту од РЕТБЛЕЕД рањивости, која функционише додавањем низа инструкција које искључују учешће механизма спекулативног извршења за индиректне скокове.

Коначно Ако сте заинтересовани да сазнате више о томе, детаље можете проверити у следећи линк.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. Odgovorni za podatke: AB Internet Networks 2008 SL
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.