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:

Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...