Inlining, compiler optimizasyonlarının temel taşlarından biri olarak kabul edilir. Başlangıçta, bir fonksiyon çağrısının getirdiği maliyetten kaçınmak için kullanılan bu teknik, günümüzde çok daha geniş bir amaca hizmet etmektedir: diğer optimizasyonların önünü açmak. Örneğin, std::vector sınıfının .size() metodunu çağırdığımızda, derlenmiş kodda doğrudan bir çağrı görmek yerine, sadece basit bir çıkarma ve kaydırma işlemi görürüz. Bu, compiler'ın size() metodunu çağıran yere "inline" etmesi, yani kodunu kopyalayıp yapıştırması sayesinde gerçekleşir.
Inlining, compiler'ın kodu daha derinlemesine analiz etmesini ve optimize etmesini sağlar. Örneğin, bir string'i büyük harfe çeviren make_upper fonksiyonu içinde kullanılan change_case yardımcı fonksiyonu ele alındığında, compiler change_case'i make_upper içine inline edebilir. Eğer upper değişkeninin her zaman true olduğu biliniyorsa, compiler bu bilgiyi kullanarak change_case içindeki !upper durumuna ait kod yollarını tamamen kaldırabilir. Bu sayede, gereksiz dallanmalar ortadan kalkar ve kod daha verimli hale gelir. Compiler, inlined edilmiş kod üzerinde sabit değerleri yayma (constant propagation) ve kullanılmayan kod yollarını eleme gibi ek optimizasyonlar uygulayabilir.
Ancak inlining'in bazı dezavantajları da vardır. Aşırı kullanıldığında, programın genel kod boyutunu önemli ölçüde artırabilir. Compiler, bir fonksiyonu inline edip etmeyeceğine karar verirken, kod boyutu artışı ve beklenen performans kazancı gibi faktörleri değerlendiren sezgisel yöntemlere başvurur. Bu kararlar her zaman doğru olmayabilir. Nadir durumlarda, ortak bir rutini çağırmanın maliyetini kabul etmek, özellikle dallanma tahmini (branch prediction) açısından daha faydalı olabilir. Yine de çoğu durumda inlining, yazılım performansını artırmak için vazgeçilmez bir tekniktir.
Inlining, compiler'ların kod performansını artırmak için çağrı maliyetini azaltmanın ötesinde, başka optimizasyonları mümkün kılan temel bir tekniktir.