Low Level Virtual Machine
- Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, Low Level Virtual Machine.
The Low Level Virtual Machine (LLVM), är en infrastruktur för kompilering. LLVM är skrivet i C++ och är designat för att utföra optimeringar vid kompilering, länkning, och körning av program, oberoende av programspråk. Trots att LLVM från början var skrivet för C och C++ så har den språkoberoende designen lett fram till frontends till flera olika språk, så som Objective-C[1], Java bytekod[2], Haskell[3] och Fortran[1] för att nämna några.
Beskrivning
LLVM fungerar som en backend för en kompilator. Dess input är ett program representerat på en s.k. intermediate form från kompilatorn, och har som output en optimerad version av inputen, men kan också användas för att generera maskinkod som kan användas vid länkning av en binär. LLVM accepterar även program i den form GCC använder internt, och kan således användas till flera av de kompilatorer som innefattas i GCC-projektet.
LLVM har en språkoberoende uppsättning instruktioner och ett typsystem. Varje instruktion skrivs i SSA, vilket underlättar analys och optimering av program.