Ang LLVM 12.0 ay pinakawalan na at ito ang balita nito

LLVM

Pagkatapos ng anim na buwan ng pag-unlad ang paglulunsad ng bagong bersyon ng proyekto ng LLVM 12.0 ay ipinakita Sumusunod ang GCC (Mga Compiler, Optimizer, at Code Generator) na nag-iipon ng mga programa sa intermediate bitcode ng mga virtual na tagubilin na katulad ng RISC (isang mababang antas na virtual machine na may multi-level na sistema ng pag-optimize).

Sa bagong bersyon na ito mahahanap natin ang iba`t ibang mga pagpapabuti at balita, kung saan maaari naming i-highlight ang isang bagong katangian ng pagpapaandar na "tune-cpu" upang suportahan ang -mtune bilang gcc, pati na rin ang mga pagpapabuti sa iba't ibang mga platform.

Pangunahing mga bagong tampok ng LLVM 12.0

Sa bagong bersyon na ito, mahahanap natin iyon suporta para sa llvm-build build toolkit nakasulat sa sawa ay hindi na ipinagpatuloy, sa halip na kung saan ang proyekto ay ganap na lumipat sa paggamit ng CMake build system.

Ang backend para sa arkitektura ng AArch64 ay napabuti ang suporta para sa Windows platform: ang tamang henerasyon ng output ng assembler ay ibinibigay para sa mga target na system ng Windows, na-optimize ang pagbuo ng data sa mga pag-unwind na tawag (ang laki ng naturang data ay nabawasan ng 60%), ang kakayahang lumikha ng data ay naidagdag na nagpahinga gamit ang mga direktiba.

habang Kasama sa backPC ng arkitektura ng PowerPC ang mga bagong pag-optimize para sa mga inline at loop na pag-deploy, mga pagpapabuti sa suporta para sa mga processor ng Power10, karagdagang suporta para sa mga tagubilin sa MMA para sa pagmamanipula ng mga array, at pinahusay na suporta para sa operating system ng AIX.

Sa Nagdagdag ng suporta ang x86 para sa AMD Zen 3, mga processor ng Intel Alder Lake at Intel Sapphire Rapids, pati na rin ang mga tagubilin para sa mga nagpoproseso ng HRESET, UINTR, at AVXVNNI. Inalis ang suporta para sa mga extension ng MPX (mga extension ng proteksyon ng memorya) upang suriin ang mga payo laban sa mga limitasyon sa lugar ng memorya (ang teknolohiyang ito ay hindi pa malawak na ginamit at naalis na mula sa GCC at clang). Ang assembler ay nagdagdag ng suporta para sa mga unlapi na {disp32} at {disp8} at ang mga panlapi .d32 at .d8 upang makontrol ang laki ng offset ng mga operan at transisyon. Ang isang bagong katangian na "tune-cpu" ay naidagdag upang makontrol ang pagpapagana ng mga pag-optimize ng microarchitectural.

Ang isa pang pagbabago na namumukod-tangi ay iyon isang bagong mode ay naidagdag na "-fsanitize = unsigned-shift-base" upang matukoy ang mga hindi naka-sign na overgrow ng integer pagkatapos ng kaunting paglilipat sa kaliwa. Para sa format na Mach-O (macOS), ipinapatupad ang suporta para sa mga arkitektura ng arm64, braso, at i386, pag-optimize ng yugto ng pag-link (LTO), at pag-stack ng pahinga kapag hawakan ang mga pagbubukod.

Rin isang bagong katangian ng tampok na "tune-cpu" ay naka-highlight pinapayagan ang oinilapat ang mga pag-optimize ng microarchitecture anuman ang katangiang "target-cpu" o mula sa TargetMachine CPU na gagamitin upang piliin ang hanay ng pagtuturo. Kung wala ang katangian, susundan ng tuning CPU ang target na CPU.

Nagpapatupad ang Libc ++ ng mga bagong tampok ng pamantayan ng C ++ 20 at nagsimulang pagbuo ng mga tampok ng pagtutukoy ng C ++ 2b, plus nagdagdag ng suporta para sa pagtitipon na may hindi paganahin ang suporta para sa lokalisasyon ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") at mga aparato para sa pagbuo ng mga pseudo-random na numero.

habang ng mga pagpapabuti para sa Clang 12, para sa arkitekturang AArch64, naidagdag ang mga bagong flag ng tagatala "-Moutline-atomics" at "-mno-outline-atomics" upang paganahin at huwag paganahin ang mga pagpapaandar ng atomic helper tulad ng "__aarch64_cas8_relax". Natutukoy ng mga pagpapaandar na runtime na ito kung mayroong suporta para sa Malaking System Extensions (LSE) at ginagamit ang ibinigay na mga tagubilin ng atomic processor o rollback upang magamit ang mga tagubilin sa LL / SC (Load-link / store-conditional) para sa pagsabay.

Ang pointer na 'ito' ay naproseso na ngayon gamit ang mga hindi null at hindi kanais-nais na mga tseke (N). Ang pagpipiliang "-fdelete-null-pointer-cheques" ay maaaring magamit upang alisin ang katangiang hindi null kapag kinakailangan ng mga null na halaga.

Sa Linux para sa mga arkitekturang AArch64 at PowerPC, ang "-fasynchronous -wind-tables" ay pinagana upang makabuo ng mga talahanayan ng mga roll call, tulad ng sa GCC.

Sa "#pragma clang loop vectorize_width" ang kakayahang tukuyin ang "naayos" (default) at ang "scalable" na mga pagpipilian upang piliin ang pamamaraan ng vectorization ay naidagdag.

Sa clangd caching server (Clang Server) sa Linux, ang pagkonsumo ng memorya sa panahon ng pangmatagalang operasyon ay makabuluhang nabawasan (isang pana-panahong tawag sa malloc_trim ay ibinibigay upang ibalik ang mga libreng pahina ng memorya sa operating system).

Sa wakas kung interesado kang malaman ang tungkol dito tungkol sa bagong bersyon na ito, maaari mo Mangyaring mag-refer sa mga detalye sa sumusunod. link


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.