После шест месеци развоја представљено је лансирање новог издања пројекта ЛЛВМ 11.0 у коме је представљено неколико побољшања, попут ажурирања на Питхон 3, закрпе за подршку експерименталним упутствима у РИСЦ-В и још много промена.
За оне који нису упознати са ЛЛВМ, требали би знати шта је то приручник у складу са ГЦЦ (компајлери, оптимизатори и генератори кода) који компајлира програме у посредне виртуелне инструкције сличне бит-коду налик на РИСЦ (виртуелна машина на ниском нивоу са системом за оптимизацију на више нивоа)
Дизајниран је за оптимизацију времена компајлирања, време везивања, време извршавања у било ком програмском језику који корисник жели да дефинише. Првобитно је имплементиран за компајлирање Ц и Ц ++, Језички агностички дизајн ЛЛВМ-а и успех пројекта изнедрили су широк спектар језика.
Генерирани псеудо-код се може претворити помоћу ЈИТ компајлера у машинске инструкције директно у време извршења програма.
Главне нове карактеристике ЛЛВМ 11.0
У овој новој верзији ЛЛВМ 11.0 систем изградње је премештен да користи Питхон 3Као такав, употреба Питхон 3 није присиљена, јер у случају да није доступан, опција враћања је имплементирана за употребу Питхон 2.
Атрибут додата је векторска функција-аби-варијанта до средње заступљености (ИР) за описивање пресликавања између скаларних и векторских функција за позиве за векторизацију. Два одвојена векторска типа, ллвм :: ФикедВецторТипе и ллвм :: СцалаблеВецторТипе, издвојена су из ллвм :: ВецторТипе.
Недефинисано понашање је разгранавање засновано на ундеф и прелазак са недефинисаних вредности на стандардне функције библиотеке.
У мемсет / мемцпи / меммове дозвољено је прослеђивање недефинисаних показивача, али ако је параметар величине једнак нули.
ЛЉИТ додаје подршку за вршење статичких иницијализација путем метода ЛЉИТ :: инитиализе и ЛЉИТ :: деинитиализе.
Додато је могућност додавања статичких библиотека у ЈИТДилиб користећи класу СтатицЛибрариДефинитионГенератор. Додан Ц АПИ за ОРЦв2 (АПИ за стварање ЈИТ компајлера).
Побољшање подршке за различите процесорске архитектуре:
- Додато подршка за Цортек-А34, Цортек-А77, Цортек-А78 и Цортек-Кс1 процесоре на позадини архитектуре ААрцх64. Примењена су проширења АРМв8.2-БФ16 (БФлоат16) и АРМв8.6-А, укључујући РМв8.6-ЕЦВ (побољшана контра-виртуелизација), АРМв8.6-ФГТ (фино зрнасте замке), АРМв8.6-АМУ (активност Надгледа виртуелизацију) и АРМв8.0-ДГХ (наговештај прикупљања података).
- Додата подршка за Цортек-М55, Цортек-А77, Цортек-А78 и Цортек-Кс1 процесоре на АРМ позадини. Применили су проширења Армв8.6-А Матрик Мултипли и РМв8.2-АА32БФ16 БФлоат16.
- Додата подршка за генерисање кода за ПОВЕР10 процесоре у ПоверПЦ позадини. Побољшана оптимизација петље и побољшана подршка за операције са покретном тачком.
- Архитектонска позадина РИСЦ-В може да прима закрпе са подршком за експерименталне проширене комплете инструкција који још увек нису званично одобрени.
Поред тога, обезбеђена је могућност генерисања кода за функције везивања интегрисан у векторске СВЕ инструкције.
Позадина за АВР архитектуру је премештена из експерименталне категорије у стабилне укључене у основну дистрибуцију.
Позадина к86 подржава Интел АМКС и ТСКСЛДТРК упутства. Додата заштита од ЛВИ напада (Лоад Валуе Ињецтион) и општи механизам за сузбијање нежељених ефеката спекулативног извршавања такође је примењен за блокирање напада изазваних шпекулативним извршавањем операција на ЦПУ-у.
Од осталих промена које се истичу:
- Заштита за архитектуру СистемЗ додаје подршку за МемориСанитизер и ЛеакСанитизер.
- Либц ++ додаје подршку за математичку датотеку константног заглавља .
- Проширене могућности ЛЛД повезивача.
- Побољшана ЕЛФ подршка, укључујући додане опције „–лто-емит-асм“, „–лто-вхоле-програм-висибле“, „–принт-арцхиве-статс“, „–схуффле-сецтион“, „–тхинлто-сингле -модуле "," –Уникат "," –рогмент "," –нитови = Н ".
- Додата је опција „–тиме-траце“ за спремање праћења у датотеку, која се потом може рашчланити кроз цхроме: // траце интерфаце у Цхроме-у.
- Интерфејс са Го (ллго) компајлером уклоњен је из издања и можда ће бити реструктуриран у будућности.
Коначно ако желите да сазнате више о томе о овој новој верзији, можете проверити детаље у следећем линку.