Jaunā LLVM 9.0 versija jau ir izlaista, un tie ir tās jaunumi

LLVM

Pēc sešu mēnešu attīstības tika prezentēta LLVM 9.0 projekta jaunās versijas palaišana, kas ir ar GCC saderīgs rīku komplekts (kompilatori, optimizētāji un kodu ģeneratori), kas apkopo programmas RISC līdzīgu virtuālo instrukciju starpbitu kodā (zema līmeņa virtuālā mašīna ar daudzlīmeņu optimizācijas sistēmu).

Tas ir paredzēts kompilācijas laika optimizēšanai, saistīšanas laiks, izpildes laiks jebkurā programmēšanas valodā, kuru lietotājs vēlas definēt. Sākotnēji ieviests, lai apkopotu C un C ++, LLVM valodas agnostikas dizains un projekta panākumi ir radījušas visdažādākās valodas, ieskaitot Objective-C, Fortran, Ada, Haskell, Java baitkodu, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas un citus.

Izveidoto pseidokodu var pārveidot, izmantojot JIT kompilatoru, mašīnu instrukcijās tieši programmas izpildes laikā.

Galvenās jaunās LLVM 9.0 funkcijas

Starp jaunajām LLVM 9.0 funkcijām atradis atbalstu eksperimentālās izstrādes taga noņemšanai no RISC-V platformas, C ++ atbalsts OpenCL.

Vēl viens jaunums, kas izceļas ar iespēju sadalīt programmu dinamiski ielādētās daļās LLD un Linux kodola kodā izmantotā »asm goto» konstrukcijas ieviešana.

Turklāt tiek arī uzsvērts, ka Libc ++ tika nodrošināts ar atbalstu WASI (WebAssembly sistēmas saskarne) un LLD ieviesa sākotnējo atbalstu dinamiskai WebAssemble saistīšanai. Pievienoja GCC specifiskās izteiksmes »asm goto» ieviešanu, kas ļauj pārslēgties no salikta līnijas bloka uz tagu C kodā.

Šī funkcija ir nepieciešama, lai izveidotu Linux kodolu režīmā »CONFIG_JUMP_LABEL = y«, izmantojot Clang x86_64 sistēmās. Ņemot vērā iepriekšējās versijās pievienotās izmaiņas, Linux kodolu tagad var izveidot Clang arhitektūrā x86_64 (iepriekš tas tika atbalstīts tikai arm, aarch64, ppc32, ppc64le un mips arhitektūrām.

Ir pievienots atbalsts izziņu instrukcijām (Branch Target Indicator) un PAC (Pointer Authentication Code) AArch64 arhitektūrai. Ievērojami uzlabots atbalsts MIPS, RISC-V un PowerPC platformām.

Turklāt, Android un ChromeOS projekti jau ir pārgājuši uz Clang izmantošanu kodola izveidošanai un Google testē Clang kā galveno būvēšanas platformas kodolu tās darbojošajām Linux sistēmām.

Nākotnē kodola kompilēšanas procesā būs iespējams izmantot citus komponentus LLVM, ieskaitot LLD, llvm-objcopy, llvm-ar, llvm-nm un llvm-objdump.

LLD saitei ir pievienota eksperimentāla nodalījuma funkcija, kas ļauj programmu sadalīt vairākās daļās, no kurām katra tiek ievietota atsevišķā ELF failā. Šī funkcija ļauj palaist programmas galveno daļu, kas pēc vajadzības ielādēs pārējos procesa komponentus (piemēram, iebūvēto PDF skatītāju varat izvēlēties kā atsevišķu failu, kas tiks lejupielādēts tikai tad, kad lietotājs atver failu PDF).

No otras puses, izceļas arī daudzie aizmugures uzlabojumi. X86, AArch64, ARM, SystemZ, MIPS, AMDGPU un PowerPC arhitektūrām.

Piemēram, AArch2 arhitektūrai ir pievienots atbalsts SVE64 un MTE (Memory Tagging Extensions), ARM aizmugurē ir pievienots Armv8.1-M arhitektūras un MVE arhitektūras atbalsts.

AMDGPU gadījumā tika pievienots atbalsts GFX10 arhitektūrai (Navi), noklusējums ir iespējots, lai izsauktu funkciju un nodotu aktivēto kombinēto DPP (Data Primitives-Parallel).

LLDB atkļūdotājs ieviesa pēdu krāsu izcelšanu atpakaļ; pievienots atbalsts DWARF4 debug_types un DWARF5 debug_info blokiem;

Llvm-objcopy un llvm-strip utilītas ir pievienojušas atbalstu COFF formāta izpildāmajiem failiem un objektiem.

RISC-V arhitektūras aizmugure ir stabilizēta, kas vairs netiek pozicionēts kā eksperimentāls un tiek veidots pēc noklusējuma. Pilnīgs koda ģenerēšanas atbalsts RV32I un RV64I instrukciju kopu variantiem ar MAFDC paplašinājumiem.

Fuente: http://releases.llvm.org/


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.