LLVM

Vad är LLVM?

Vad är LLVM?

Vad är LLVM och varför är det användbart??

Flera miniprojekt fungerar under paraplyet LLVM. Miniprojekten handlar främst om kompileringsteknik. Det verkar finnas en viss förvirring angående LLVM-namngivning. Människor antar felaktigt att det är relaterat till virtuella maskiner. Det finns ingen koppling. Termen LLVM står inte för någonting. Det är bara ett namn som användes i början av projektet.

LLVM-projektet drivs under "UIUC" BSD-Style-licens. Projektet har sitt ursprung i University of Illinois. Sedan dess har den vunnit popularitet och den har använts för ett stort antal projekt. Det är särskilt populärt i akademiska kretsar. Huvudsyftet med projektet att tillhandahålla SSA-baserad statisk och dynamisk sammanställning av olika programmeringsspråk.

Här är miniprojektet för LLVM:

  1. LLVM-kärna: Kärnbiblioteken erbjuder optimerings- och kodgenereringsstöd för processorer. LLVM IR (Intermediate Representation) utgör grunden för biblioteken. Gemenskapen har gjort ett bra jobb med att dokumentera LLVM Core. Så du kan enkelt använda dessa bibliotek för att skapa ditt nya programmeringsspråk eller skapa en port för en befintlig kompilator. Om du vill ge dig in i dessa områden är LLVM Core ett bra ställe att börja.
  1. Klang: Det är en kompilator som är tre gånger snabbare än GCC. Den riktar sig mot C, C ++ och Objective-C. Clang-felen och varningarna är lättare att förstå. Den har också ett statiskt analysverktyg. Det statiska analysatorverktyget i sig är byggt med Clang-kompilatorn.
  1. LLDB: Det är en felsökare. Det är snabbare och effektivare än GDB. Felsökaren är byggd med Clang och LLVM Core.
  1. libc ++ och libc ++ ABI: Bättre implementering av C ++ STD.
  1. kompilator-rt: Det ger stöd för lågnivåkod. Det har också körtidsbibliotek för dynamisk testning.
  1. OpenMP: Open Multi-Processing (OpenMP) är ett API för att hjälpa till med multithreading. Detta projekt stöder den ursprungliga körtiden för OpenMP som ska användas med Clang.
  1. Polly: I LLVM-världen är det en högnivåslinga och optimering av datalokalitet. Det optimerar minnesåtkomstmönster för program.
  1. libclc: Ett bibliotek för OpenCL.
  1. klee: Det är en symbolisk virtuell maskin. Du kan använda klee för att korsa alla dynamiska banor i ett program för att hitta problem. Maskinen kan producera automatiserade testfall.
  1. SÄKERHETSKOD: Det är en kompilator för C / C ++ för att garantera minnessäkerhet. Det är ett utmärkt verktyg för cybersäkerhetsexperter att utforska. Det kan hjälpa till med att upptäcka minnesfel.
  1. lld: Det bygger en länk för att arbeta med Clang och LLVM.

LLVM har rykte om att skapa renare binärer än GCC. LLVM har också externa projekt som kan användas för att kompilera Python, Haskell, PHP, LUA, Ruby och andra språk. LLVM anses vara en mångsidig, flexibel och återanvändbar lösning. Så det blir allt populärare i utvecklingssamhället. Den används som JIT-kompilatorer för inbäddade språk. LLVM används också för superdatorer. Det breda stödet från utvecklargemenskapen gör det till ett robust verktyg.

Ytterligare studier:

Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...
Mus Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Kanske behöver du ett verktyg som kan göra att musens kontroll ändras med alla applikationer som du använder. Om så är fallet kan du prova en ansökan ...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jag har nyligen läst om Microsoft Sculpt Touch trådlös mus och bestämde mig för att köpa den. Efter att ha använt den ett tag bestämde jag mig för att...