LLVM

Hva er LLVM?

Hva er LLVM?

Hva er LLVM og hvorfor er det nyttig??

Flere miniprosjekter fungerer under LLVM-paraplyen. Mini-prosjektene omhandler hovedsakelig kompilatorteknologi. Det ser ut til å være forvirring angående LLVM-navngivning. Folk antar feilaktig at det er relatert til virtuelle maskiner. Det er ingen sammenheng. Begrepet LLVM står ikke for noe. Det er bare et navn som ble brukt i begynnelsen av prosjektet.

LLVM-prosjektet drives under "UIUC" BSD-Style lisens. Prosjektet stammer fra University of Illinois. Siden den har den fått popularitet, og den har blitt brukt til et stort utvalg av prosjekter. Det er spesielt populært i akademiske miljøer. Hovedmålet med prosjektet å gi SSA-basert statisk og dynamisk samling av forskjellige programmeringsspråk.

Her er miniprosjektet til LLVM:

  1. LLVM-kjerne: Kjernebibliotekene gir støtte for optimalisering og generering av kode for CPUer. LLVM IR (Intermediate Representation) gir grunnlaget for bibliotekene. Samfunnet har gjort en god jobb med å dokumentere LLVM Core. Så du kan enkelt bruke disse bibliotekene til å lage ditt nye programmeringsspråk eller opprette en port til en eksisterende kompilator. Hvis du ønsker å dra inn i disse områdene, er LLVM Core et godt sted å starte.
  1. Clang: Det er en kompilator som er tre ganger raskere enn GCC. Den retter seg mot C, C ++ og Objective-C. Clang-feilene og advarslene er lettere å forstå. Den har også et statisk analysatorverktøy. Selve det statiske analysatorverktøyet er bygget ved hjelp av Clang-kompilatoren.
  1. LLDB: Det er en feilsøking. Det er raskere og mer effektivt enn GDB. Feilsøkingsprogrammet er bygget med Clang og LLVM Core.
  1. libc ++ og libc ++ ABI: Bedre implementering av C ++ STD.
  1. kompilator-rt: Den gir støtte for lavnivåkode. Det har også kjøretidbiblioteker for dynamisk testing.
  1. OpenMP: Open Multi-Processing (OpenMP) er et API for å hjelpe med multitråding. Dette prosjektet støtter den opprinnelige kjøretiden for OpenMP som skal brukes med Clang.
  1. Polly: I LLVM-verdenen er det en løkke- og datalokaliseringsoptimering på høyt nivå. Det optimaliserer minnetilgangsmønstre for programmer.
  1. libclc: Et bibliotek for OpenCL.
  1. klee: Det er en symbolsk virtuell maskin. Du kan bruke klee til å krysse alle dynamiske baner i et program for å finne problemer. Maskinen kan produsere automatiserte testsaker.
  1. SIKKERHETSKODE: Det er en kompilator for C / C ++ for å garantere minnesikkerhet. Det er et flott verktøy for cybersikkerhetseksperter å utforske. Det kan hjelpe med å oppdage minnesikkerhetsfeil.
  1. lld: Det bygger en linker for å jobbe med Clang og LLVM.

LLVM har et rykte for å skape renere binærfiler enn GCC. LLVM har også eksterne prosjekter som kan brukes til å kompilere Python, Haskell, PHP, LUA, Ruby og andre språk. LLVM regnes som en allsidig, fleksibel og gjenbrukbar løsning. Så det blir stadig mer populært i utviklingssamfunnet. Den brukes som JIT-kompilatorer for innebygde språk. LLVM brukes også til superdatamaskiner. Den brede støtten fra utviklermiljøet gjør det til et robust verktøy.

Videre studier:

Hvordan fange opp og streame spilløkten din på Linux
Tidligere ble spill bare ansett som en hobby, men med tiden så spillindustrien en enorm vekst når det gjelder teknologi og antall spillere. Spillpubli...
Beste spill å spille med håndsporing
Oculus Quest introduserte nylig den gode ideen om håndsporing uten kontrollere. Med et stadig økende antall spill og aktiviteter som utfører støtte en...
Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...