LLVM

Hvad er LLVM?

Hvad er LLVM?

Hvad er LLVM og hvorfor er det nyttigt?

Flere mini-projekter arbejder under LLVM-paraplyen. Mini-projekterne beskæftiger sig primært med kompileringsteknologier. Der ser ud til at være en vis forvirring med hensyn til LLVM-navngivning. Folk antager fejlagtigt, at det er relateret til virtuelle maskiner. Der er ingen forbindelse. Udtrykket LLVM står ikke for noget. Det er bare et navn, der blev brugt i starten af ​​projektet.

LLVM-projektet drives under "UIUC" BSD-Style-licens. Projektet stammer fra University of Illinois. Siden da har det vundet popularitet, og det er blevet brugt til et stort udvalg af projekter. Det er især populært i de akademiske kredse. Hovedformålet med projektet at give SSA-baseret statisk og dynamisk kompilering af forskellige programmeringssprog.

Her er mini-projektet fra LLVM:

  1. LLVM-kerne: Kernebibliotekerne understøtter optimering og generering af kode til CPU'er. LLVM IR (Intermediate Representation) danner grundlaget for bibliotekerne. Samfundet har gjort et godt stykke arbejde med at dokumentere LLVM Core. Så du kan nemt bruge disse biblioteker til at oprette dit nye programmeringssprog eller oprette en port til en eksisterende compiler. Hvis du ønsker at vove dig ind i disse områder, er LLVM Core et godt sted at starte.
  1. Clang: Det er en kompilator, der er tre gange hurtigere end GCC. Det er målrettet mod C, C ++ og Objective-C. Clang-fejlene og advarslerne er lettere at forstå. Det har også et statisk analyseværktøj. Selve det statiske analyseværktøj er bygget ved hjælp af Clang-kompilatoren.
  1. LLDB: Det er en debugger. Det er hurtigere og mere effektivt end GDB. Fejlfindingsprogrammet er bygget ved hjælp af Clang og LLVM Core.
  1. libc ++ og libc ++ ABI: Bedre implementering af C ++ STD.
  1. compiler-rt: Det giver understøtter kode på lavt niveau. Det har også runtime-biblioteker til dynamisk test.
  1. OpenMP: Open Multi-Processing (OpenMP) er en API til at hjælpe med multithreading. Dette projekt understøtter den oprindelige driftstid for OpenMP, der skal bruges med Clang.
  1. Polly: I LLVM-verdenen er det en optimering af sløjfe og datalokalitet på højt niveau. Det optimerer hukommelsesadgangsmønstre for programmer.
  1. libclc: Et bibliotek til OpenCL.
  1. klee: Det er en symbolsk virtuel maskine. Du kan bruge klee til at krydse alle de dynamiske stier i et program for at finde problemer. Maskinen kan producere automatiserede testsager.
  1. SIKKERHED: Det er en kompilator til C / C ++ for at garantere hukommelsessikkerhed. Det er et fantastisk værktøj, som eksperter på cybersikkerhed kan udforske. Det kan hjælpe med at opdage hukommelsessikkerhedsfejl.
  1. lld: Det bygger en linker til at arbejde med Clang og LLVM.

LLVM har ry for at skabe renere binære filer end GCC. LLVM har også eksterne projekter, som kan bruges til at kompilere Python, Haskell, PHP, LUA, Ruby og andre sprog. LLVM betragtes som en alsidig, fleksibel og genanvendelig løsning. Så det vinder popularitet i udviklingssamfundet. Det bruges som JIT-kompilatorer til indlejrede sprog. LLVM bruges også til supercomputere. Den brede støtte fra udviklerfællesskabet gør det til et robust værktøj.

Yderligere studier:

Top Oculus App Lab-spil
Hvis du er Oculus-headset-ejer, skal du være opmærksom på sideloading. Sideladning er processen med at installere ikke-butiksindhold på dit headset. S...
Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...