2012-12-10 20 views
8

Önümüzdeki bayraklarıyla benim kaynak kodunu kavrayıcı grubuyla birlikte değiştirilmiş derlemeye çalıştık yağ LTO-nesneleri Üçüncüsü, dokümantasyonda yazıldığı gibi optimize edilmiş slim LTO kodu sağlar, ancak çıkış aksamı dosyasında birinci ve ikinci arasında hiçbir fark görmüyorum, neden?LTO arasındaki gcc farkı nedir

OS: linux
Derleyici: GCC Muhtemelen 4.7

+0

Montajcı çıkışını ve -fno-fat-lto-nesnelerini aynı anda sormanız gerçekten mantıklı değil. –

cevap

9

Yağ ve yağsız nesne dosyaları arasındaki fark, yağ nesnesi dosyalarının, normal olarak derlenen kodun yanı sıra, hem orta hem de dil içermesidir. Bağlantı süresinde, eğer -lcto olmadan derleyiciyi çağırırsanız, şişman nesneler normal nesne dosyaları (ve LTO bilgileri atılır) olarak işlenirken, ince nesneler LTO optimize edicilerini çözer;

Eğer hem flt ile hem derler hem de bağlantı kurarsanız, hem şişman hem de ince nesneler aynı ikiliyi vermelidir, sadece küçük nesneler daha küçük ve daha hızlı olacaktır, çünkü gereksiz kod oluşumundan kaçınacaksınız.

+0

Ve günümüzde - soru sorulduğunda tersine - ince mod varsayılan, değil mi? (btw LTO hakkında okuyorum ve adınızı çok :-) gördüm. –

2

Birisine yararlı olacaktır:
Here sonraki yazdı: Yani
The current implementation only produces “fat” objects, effectively doubling compilation time and increasing file sizes up to 5x the original size

Ben ana nedeni olduğunu düşünüyorum .

İlgili konular