LLVM (Low Level Virtual Machine), derleyici (compiler) geliştirmeyi modüler hale getiren ve Intermediate Representation (IR) adını verdiği ara dil sayesinde yüksek seviyeli kodları makine koduna dönüştüren modern bir derleyici altyapısıdır.
​Problemin Kaynağı: M \times N Derleyici Kabusu
​Geleneksel derleyici yaklaşımında M adet yüksek seviyeli dil (C, C++, Rust vb.) ve N adet donanım mimarisi (x86, ARM, RISC-V vb.) olduğunda; her dili her mimariye derlemek için M \times N adet farklı derleyici yazılması gerekiyordu. Bu da muazzam bir kod tekrarı ve zaman kaybı demekti.
​ LLVM Çözümü: 3 Aşamalı Modüler Mimari
​LLVM bu karmaşıklığı 3 bağımsız katmana bölerek mantığı M + N seviyesine düşürür:
​Frontend (Ön Yüz): Yazdığınız kaynak kodu (C, Rust, Swift vb.) okur, dil kurallarını denetler ve koda özel yapıyı ortak bir dil olan LLVM IR (Intermediate Representation) koduna dönüştürür.
​Optimizer (Eniyileyici): Donanımdan ve kaynak dilden tamamen bağımsızdır. Üretilen LLVM IR kodunu analiz eder; ölü kodları temizler, döngüleri optimize eder ve performansı artırır.
​Backend (Arka Yüz): Optimize edilmiş LLVM IR kodunu alır ve hedef donanımın (x86, ARM, WebAssembly vb.) özgün makine diline çevirir.
​ Gizli Kahraman: LLVM IR
​LLVM'in kalbi bu ara temsil dilidir. Ne C++ kadar yüksek seviyeli ne de assembly kadar donanıma çakılıdır.
​SSA (Single Static Assignment) Yapısı: Her değişkene sadece bir kez değer atanabilir. Bu özellik derleyicinin veri akışını takip etmesini ve kodu optimize etmesini son derece kolaylaştırır.
​Sonsuz Yazmaç (Infinite Registers): Gerçek işlemcilerdeki kısıtlı yazmaç (register) sayısı yerine sınırsız sanal yazmaç varmış gibi çalışır. Donanım eşlemesini arka yüz halleder.
​Günümüzde Neden Bu Kadar Popüler?
​Rust, Swift, Julia, Kotlin Native: Bu dillerin tamamı arka planda LLVM altyapısını kullanarak doğrudan yüksek performanslı makine koduna derlenir.
​Clang: GCC'ye rakip olarak doğan, çok daha hızlı ve anlaşılır hata mesajları sunan LLVM tabanlı C/C++/Objective-C derleyicisidir.
​GPU & AI Derleyicileri: NVIDIA CUDA ve Apple Metal derleyicilerinin temelinde de LLVM mimarisi yer alır.
​Özetle: Bugün sıfırdan yeni bir programlama dili tasarlamak isterseniz, işlemci mimarilerinin detaylarıyla uğraşmanıza gerek kalmaz. Sadece kendi dilinizi LLVM IR koduna çeviren bir ön yüz (Frontend) yazarsınız; optimizasyonu ve makine koduna dönüştürme işini LLVM'e bırakırsınız.
© copyright 2005 - 2026