LLVM

Wat is LLVM?

Wat is LLVM?

Wat is LLVM en waarom is het nuttig??

Meerdere miniprojecten werken onder de LLVM-paraplu. De miniprojecten hebben voornamelijk betrekking op compilertechnologieën. Er lijkt enige verwarring te bestaan ​​over de LLVM-naamgeving. Mensen nemen ten onrechte aan dat het verband houdt met virtuele machines. Er is geen verbinding. De term LLVM staat nergens voor. Het is slechts een naam die aan het begin van het project werd gebruikt.

Het LLVM-project wordt uitgevoerd onder de "UIUC" BSD-Style-licentie. Het project is ontstaan ​​aan de Universiteit van Illinois. Sindsdien is het populair geworden en is het voor een grote verscheidenheid aan projecten gebruikt. Het is vooral populair in academische kringen. Het hoofddoel van het project om op SSA gebaseerde statische en dynamische compilatie van verschillende programmeertalen te bieden.

Hier zijn het mini-project van LLVM:

  1. LLVM-kern: De kernbibliotheken bieden ondersteuning voor optimalisatie en codegeneratie voor CPU's. LLVM IR (Intermediate Representation) vormt de basis voor de bibliotheken. De community heeft de LLVM Core goed gedocumenteerd. U kunt deze bibliotheken dus eenvoudig gebruiken om uw nieuwe programmeertaal te maken of een poort van een bestaande compiler te maken. Als u zich in deze gebieden wilt wagen, is LLVM Core een goede plek om te beginnen.
  1. Klonk: Het is een compiler die drie keer sneller is dan GCC. Het is gericht op C, C ++ en Objective-C. De Clang-fouten en waarschuwingen zijn gemakkelijker te begrijpen. Het heeft ook een statische analysetool. De statische analysetool zelf is gebouwd met behulp van de Clang-compiler.
  1. LLDB: Het is een debugger. Het is sneller en efficiënter dan GDB. De debugger is gebouwd met Clang en LLVM CoreVM.
  1. libc++ en libc++ ABI: Betere implementatie van C++ STD.
  1. compiler-rt: Het biedt ondersteuning voor code op laag niveau. Het heeft ook runtime-bibliotheken voor dynamisch testen.
  1. OpenMP: Open Multi-Processing (OpenMP) is een API die helpt bij multithreading. Dit project ondersteunt de native runtime voor OpenMP voor gebruik met Clang.
  1. Polly: In de LLVM-wereld is het een lus- en data-lokaliteitsoptimalisatie op hoog niveau. Het optimaliseert de geheugentoegangspatronen van programma's.
  1. libclc: Een bibliotheek voor OpenCL.
  1. klee: Het is een symbolische virtuele machine. Je kunt klee gebruiken om alle dynamische paden in een programma te doorlopen om problemen te vinden. De machine kan geautomatiseerde testgevallen produceren.
  1. VEILIGHEIDSCODE: Het is een compiler voor C/C++ om de veiligheid van het geheugen te garanderen. Het is een geweldig hulpmiddel voor cyberbeveiligingsexperts om te verkennen. Het kan helpen bij het detecteren van geheugenveiligheidsfouten.
  1. lld: Het bouwt een linker om met Clang en LLVM te werken.

De LLVM heeft de reputatie schonere binaire bestanden te maken dan GCC. LLVM heeft ook externe projecten die kunnen worden gebruikt om Python, Haskell, PHP, LUA, Ruby en andere talen te compileren. LLVM wordt beschouwd als een veelzijdige, flexibele en herbruikbare oplossing. Het wint dus aan populariteit in de ontwikkelingsgemeenschap. Het wordt gebruikt als JIT-compilers voor embedded talen. LLVM wordt ook gebruikt voor supercomputers. De brede steun van de ontwikkelaarsgemeenschap maakt het een robuuste tool.

Verdere studie:

HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...
Hoe FPS-teller in Linux-games te tonen
Linux-gaming kreeg een grote duw toen Valve in 2012 Linux-ondersteuning voor Steam-client en hun games aankondigde. Sindsdien hebben veel AAA- en indi...