Nicht gleich schwarz sehen.
Es kann natürlich schon sein, dass der Optimizer einige Stellen
schlechter übersetzt. Das hängt zum Teil aber auch vom C-Programm selber
ab.
Was ich tun würde
* in Betracht ziehen, eine ältere Compilerversion zu probieren.
Aber nicht, wie du jetzt denkst um damit weiterzumachen, sondern
um zu vergleichen.
Von beiden Compilerversionen eine Map anfertigen lassen und dort die
Teile heraussuchen, die sich signifikant in der Größe unterscheiden.
Diese C-Funktion dann etwas genauer ansehen. Assembler Output in
beiden Versionen vergleichen um zu sehen, was da genau größer
geworden ist und das dann im C Code wiederfinden.
* Alle Funktionen kritisch durchleuchten. Insbesondere auf zu große
Datentypen. 16 Bit Arithmetik ist nun mal aufwändiger als 8 Bit.
Wenn ich nur 8 Bit brauche, da aber 16 Bit Arithmetik drinnen habe,
dann hab ich Platz verschwendet.
Selbiges für 32 Bit Arithmetik.
* inline Funktionen
können zwar für Speed sorgen aber auch dazu, dass (durch das inlinen)
der Code insgesamt größer wird
* den Code durchsehen nach Dingen, die man vereinfachen kann.
Meistens findet sich noch so einiges.
* es gibt sicherlich noch mehrere Dinge die man machen kann, die mir
jetzt aber auf die Schnelle nicht einfallen :-)