LLVM
Kısaca: LLVM bir derleyici yapım setidir: Birçok dil aynı ara gösterime çevirir; LLVM onu optimize eder ve birçok işlemci için makine kodu üretir.
Biraz daha ayrıntılı: Dil ve işlemci başına eksiksiz bir derleyici kurmak yerine ön uç (dil) ve arka uç (işlemci), ortak LLVM IR ile ayrılır.
Ayrıntılı
- Yapı: Ön uç (örneğin C/C++ için Clang, Rust için
rustc, Swift) → LLVM IR → optimizasyon geçişleri → arka uç (x86, ARM, RISC-V, WebAssembly, GPU). - IR: SSA biçiminde (her değişkene bir kez atama yapılır) tipli, basit bir ara dil; bu optimizasyonları kolaylaştırır.
- Optimizasyonlar: Satır içi açma (inlining), döngü optimizasyonu, vektörleştirme (SIMD), sabit katlama.
- Yan ürünler: Clang-Tidy, sanitizer’lar (AddressSanitizer), LLDB hata ayıklayıcı.
- Avantaj: Yeni diller daha hızlı doğar, yeni işlemciler hemen birçok dil kazanır.
- Görünüm: GCC gibi alternatifler önemini korur, bazı diller kendi arka uçlarını kullanır (Go).
Ayrıca bak: Ara gösterim ve derleyici optimizasyonu