LLVM

Was ist LLVM?

Was ist LLVM?

Was ist LLVM und warum ist es nützlich??

Unter dem Dach von LLVM arbeiten mehrere Miniprojekte. Die Mini-Projekte beschäftigen sich hauptsächlich mit Compiler-Technologien. Es scheint einige Verwirrung bezüglich der LLVM-Namensgebung zu geben. Die Leute gehen fälschlicherweise davon aus, dass es mit virtuellen Maschinen zusammenhängt. Es gibt keine Verbindung. Der Begriff LLVM steht für nichts. Es ist nur ein Name, der zu Beginn des Projekts verwendet wurde.

Das LLVM-Projekt wird unter der „UIUC“ BSD-Style-Lizenz betrieben. Das Projekt entstand an der University of Illinois. Seitdem hat es an Popularität gewonnen und wurde für eine Vielzahl von Projekten verwendet. Besonders beliebt ist es in akademischen Kreisen. Das Hauptziel des Projekts ist die Bereitstellung von SSA-basierter statischer und dynamischer Kompilierung verschiedener Programmiersprachen.

Hier das Miniprojekt von LLVM:

  1. LLVM-Kern: Die Kernbibliotheken bieten Optimierer- und Codegenerierungsunterstützung für CPUs. LLVM IR (Intermediate Representation) bildet die Grundlage für die Bibliotheken. Die Community hat bei der Dokumentation des LLVM-Kerns gute Arbeit geleistet. So können Sie diese Bibliotheken ganz einfach verwenden, um Ihre neue Programmiersprache zu erstellen oder einen Port eines bestehenden Compilers zu erstellen. Wenn Sie sich in diese Gebiete wagen möchten, ist LLVM Core ein guter Ausgangspunkt.
  1. Klingeln: Es ist ein Compiler, der dreimal schneller ist als GCC. Es zielt auf C, C++ und Objective-C ab. Die Clang-Fehler und -Warnungen sind leichter zu verstehen. Es verfügt auch über ein statisches Analysetool. Das statische Analysetool selbst wird mit dem Clang-Compiler erstellt.
  1. LLDB: Es ist ein Debugger. Es ist schneller und effizienter als GDB. Der Debugger wird mit Clang und LLVM Core erstellt.
  1. libc++ und libc++ ABI: Bessere Implementierung von C++ STD.
  1. Compiler-rt: Es bietet Unterstützung für Low-Level-Code. Es verfügt auch über Laufzeitbibliotheken für dynamische Tests.
  1. OpenMP: Open Multi-Processing (OpenMP) ist eine API, die beim Multithreading hilft. Dieses Projekt unterstützt die native Laufzeitumgebung für OpenMP zur Verwendung mit Clang.
  1. Polly: In der LLVM-Welt ist es ein High-Level-Loop- und Datenlokalitätsoptimierer. Es optimiert Speicherzugriffsmuster von Programmen.
  1. libclc: Eine Bibliothek für OpenCL.
  1. klee: Es ist eine symbolische virtuelle Maschine. Sie können klee verwenden, um alle dynamischen Pfade in einem Programm zu durchlaufen, um Probleme zu finden. Die Maschine kann automatisierte Testfälle erstellen.
  1. SICHERHEITSCODE: Es ist ein Compiler für C/C++, um die Speichersicherheit zu gewährleisten. Es ist ein großartiges Werkzeug für Cybersicherheitsexperten, um es zu erkunden. Es kann bei der Erkennung von Speichersicherheitsfehlern helfen.
  1. lld: Es baut einen Linker für die Arbeit mit Clang und LLVM.

Das LLVM hat den Ruf, sauberere Binärdateien zu erstellen als GCC. Außerdem verfügt LLVM über externe Projekte, mit denen Python, Haskell, PHP, LUA, Ruby und andere Sprachen kompiliert werden können. LLVM gilt als vielseitige, flexible und wiederverwendbare Lösung. Daher wird es in der Entwickler-Community immer beliebter. Es wird als JIT-Compiler für eingebettete Sprachen verwendet. LLVM wird auch für Supercomputer verwendet. Die breite Unterstützung durch die Entwickler-Community macht es zu einem robusten Tool.

Weitere Studie:

Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...
So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...