LLVM

Image doesn't exist
Foto: Gandalf

LLVM je zkratka používaná pro Low Level Virtual Machine, což je:

Kompilační strategie navržená tak, aby umožnila efektivní optimalizační proces po celý život programu. LLVM podporuje efektivní optimalizaci při kompilace, linkování (zejména interprocedurální), run-time a offline (po té co je software nainstalován), zatímco zůstává pro uživatele transparentní a udržuje kompatibilitu s existujícími sestavujícími skripty.

Virtuální sada instrukcí - LLVM je nízkoúrovňová reprezentace objektu, který používá instrukce podobné RISC, ale poskytuje bohatší, jazykově nezávislé, informace o typu a dataflow (SSA) o prováděných akcích. Tato kombinace umožňuje sofistikované transformace objektového kódu, zatímco je udržuje dostatečně lehké, aby je bylo možné přidat ke spustitelnému kódu. Tato kombinace je klíčová pro možnosti link-time, run-time a offline transformací.

Infrastruktura kompilátoru - LLVM je také sbírka zdrojových kódů, které implementují jazyk a kompilační strategii. Primárním komponentem LLVM infrastruktury je C & C++ front end postavený na GCC, optimalizační framework pro linkování s rostoucím množství globálních a interprocedurálních analýz a transformací, statické pozadí pro mnoho populárních (a některé zvláštní) architektury. Pozadí je schopno vytvářet přenosný C kód a Just In Time kompilátory pro různé architektury.

LLVM nepředpokládá věci, které by jste čekali od virtuálního stroje vysoké úrovně. Neprovádí garbage collection ani runtimové generování kódu (Ve skutečnosti LLVM dělá skvělý statický kompilátor). Je však třeba poznamenat, že volitelné LLVM komponenty mohou být použity pro sestavení virtuálních strojů vysoké úrovně a další systémy, které potřebují tyto služby.

LLVM podporuje architektury ARM, Alpha, Blackfin, Cell, MSP430, Mips, PIC16, PowerPC, Sparc, SystemZ a x86. Optimalizace používané tímto systémem jsou většinou rychlejší, využívají méně paměti a kvalitou kódu odpovídá GCC.

 

Změna barev | Autorská práva | Kontakt | Podpora | RSS kanály
© 2006 Gandalf, Design by Mirek
Creative Commons License