GCC: Wann automatisch inline?

Hi,

ich habe gelesen, daß der ggc auch kleine Funktionen zu Inline-Funktionen „umwandelt“ .

Gibt es dafür eine Regel?

kann man das mit einem entsprechenden Parameter anzeigen lassen?

(Ich weiß, wie ich selbst inline-Funktionen „erzwingen“ kann, will aber mal sehen, ob der Compiler noch welche selbst als inline erkennt)

Vielen Dank
Winni

Hallo,

ich habe gelesen, daß der ggc auch kleine Funktionen zu
Inline-Funktionen „umwandelt“ .

Gibt es dafür eine Regel?

„wenn es der Kompiler für besser hält“.
Ich vermute, dass das nur gemacht wird, wenn eine -Oirgendwas Option übergeben wurde.

Die genauen Details sind vermutlich ziemlich kompliziert, und hängen auch davon ab, auf was optimiert wurde (Größe oder Geschwindigkeit)

kann man das mit einem entsprechenden Parameter anzeigen
lassen?

weiss ich nicht, aber auf jeden Fall kannst du dir den erzeugten Assembler-Code anzeigen lassen, da sollte das ziemlich klar ersichtlich sein.

(Ich weiß, wie ich selbst inline-Funktionen „erzwingen“ kann,
will aber mal sehen, ob der Compiler noch welche selbst als
inline erkennt)

„inline“ wird nur als Vorschlag angesehen, und der Compiler kann sich dagegen entscheiden. mit -Winline warnt gcc dann.

Grüße,
Moritz

Hi,

Ich vermute, dass das nur gemacht wird, wenn eine -Oirgendwas
Option übergeben wurde.

ich glaube eher -f irgendwas. Mit -O gibts nur -O0, -O1, -O2, -O3 und -Os.
Vielleicht geht das mit -fexpensive-optimizations (oder so)

mfg, Hans