Bir yazılımcı, std::array'in tüm elemanlarının sıfır olup olmadığını kontrol eden basit bir C++ fonksiyonu (isAllZeros) üzerinde çalışırken, hem GCC hem de Clang derleyicilerinin şaşırtıcı ve verimsiz assembly kodu ürettiğini gözlemledi. Fonksiyon, bir std::array'i {} ile başlatarak tüm elemanlarını sıfıra ayarlıyor ve ardından bu sıfır diziyle argüman olarak gelen diziyi karşılaştırıyor. Yazar, bu basit mantığın derleyiciler tarafından nasıl farklı ve bazen anlaşılması zor assembly talimatlarına dönüştürüldüğünü detaylı bir şekilde inceledi. Optimizasyonlar (-O3) açık olmasına rağmen, çıktılar beklentilerin dışındaydı.
GCC'nin davranışları özellikle dikkat çekiciydi. arraySize 1 olduğunda, derleyici tek bir tamsayıyı kontrol etmek için sezgisel olmayan bir test talimatı dizisi kullanıyordu. Ancak arraySize 2'ye çıkarıldığında, iki tamsayıyı (8 bayt) doğrudan sıfırla karşılaştıran daha mantıklı bir cmp talimatı üretiliyordu. En karmaşık durum ise arraySize 3 olduğunda ortaya çıktı; GCC, ilk 8 bayt için cmp, kalan 4 bayt için ise test talimatlarını karıştıran ve hatta eax kaydını sıfırlamak için garip ve gereksiz görünen bir dizi talimat içeren oldukça karmaşık bir kod üretti.
Clang derleyicisi de benzer şekilde beklenmedik sonuçlar verdi. arraySize 1 için nispeten temiz ve anlaşılır bir cmp talimatı üretirken, arraySize 2 için yine karmaşık bir yaklaşım sergiledi. Bu gözlemler, derleyicilerin basit C++ yapılarını bile farklı boyutlardaki verilerle işlerken nasıl beklenmedik ve bazen verimsiz assembly çıktıları üretebileceğini açıkça gösteriyor. Bu durum, derleyici optimizasyonlarının her zaman en ideal kodu üretmediğini ve düşük seviyeli kodun anlaşılmasının önemini vurguluyor.
Derleyicilerin basit C++ kodları için bile beklenmedik ve verimsiz assembly talimatları üretebilmesi, optimizasyon süreçlerinin karmaşıklığını ve derinlemesine anlaşılmasının önemini ortaya koyuyor.