Zum Inhalt springen

LLVM

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 4. Juli 2008 um 11:43 Uhr durch Texec (Diskussion | Beiträge) (Artikel stark ausgebaut). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Dieser Artikel wurde zur Löschung vorgeschlagen.

Falls du Autor des Artikels bist, lies dir bitte durch, was ein Löschantrag bedeutet, und entferne diesen Hinweis nicht.

Zur Löschdiskussion.

Sagt kaum etwas aus. So nicht als Artikel zu gebrauchen. --Sargolan 18:50, 3. Jul. 2008 (CEST)

Low Level Virtual Machine (LLVM) ist eine in C++ geschriebene Compiler-Architektur, die aus modularen, wiederbenutzbaren Komponenten aufgebaut ist. Sie wurde geschaffen, um Programme zu optimieren, die in frei wählbaren imperativen Programmiersprachen geschrieben wurde. Dabei wird neben dem Kompilieren und dem Linken von Programmen auch das Laufzeitverhalten optimiert.

Momentan können Programme in C, C++, Objective C, Ada und Fortran mit einem von der GNU Compiler Collection (GCC) abgeleiteten Frontend, das die Bibliotheken von LLVM benutzt, kompiliert werden. Ein alternatives Frontend namens Clang befindet sich in der Entwicklung.

Mit LLVM lassen sich Virtuelle Maschinen für Sprachen wie Java, Plattformspezifische Code Generatoren und von Sprache und Plattform unabhängige Optimierer schaffen. Die LLVM Zwischenschicht (IR) ist unabhängig von Sprache und Architektur, sie liegt zwischen Sprachspezifischen Modulen und dem, für spezielle Plattformen optimierten, Code Generator. LLVM unterstützt dynamische, inter-prozedurale Optimierung, sowie statische und Just-in-time Compiler.

Viele Komponenten befinden sich noch in Entwicklung, unter anderem Frontends für Java Bytecode, CIL und Python. Der LLVM JIT Compiler ist in der Lage ungenutzte statische Zweige des Programms zur Laufzeit zu entfernen, was nützlich für Programme ist die viele Optionen haben, die nur auf spezielle Umgebungen zutreffen. Deswegen nutzt Apple LLVM im OpenGL-Stack von Mac OS X 10.5[1] um fehlende Hardware Fähigkeiten partiell nachzurüsten.

Einzelnachweise

  1. [LLVMdev] A cool use of LLVM at Apple: the OpenGL stack