Dlaczego GCC nie optymalizuje struktur?

Systemy wymagają, aby pewne prymitywy były wyrównane do pewnych punktów w pamięci (wartości int do bajtów, które są wielokrotnościami 4, zwarcia do bajtów, które są wielokrotnościami 2 itd.). Oczywiście można je zoptymalizować, aby zminimalizować ilość miejsca w obiciu.

Moje pytanie brzmi: dlaczego GCC nie robi tego automatycznie? Czy bardziej oczywista heurystyka (zmienne porządku od wymogu największego rozmiaru do najmniejszego) brakuje w jakiś sposób? Czy jakiś kod zależy od fizycznej kolejności jego struktur (czy to dobry pomysł)?

Pytam tylko dlatego, że GCC jest super zoptymalizowany na wiele sposobów, ale nie w tym jednym, i myślę, że musi istnieć jakieś relatywnie fajne wyjaśnienie (do którego jestem nieświadomy).

questionAnswers(7)

yourAnswerToTheQuestion