GCC 17 macht verschachtelte Funktionen ohne Trampoline möglich
Using GCC's Nested Functions with Wide Pointers and No Trampolines II
GCC 16 garantiert, dass verschachtelte Funktionen ohne Zugriff auf Variablen der Elternfunktion keine Trampoline benötigen. Für GCC 17 wurde ein Patch integriert, der zwei neue Built-in-Funktionen einführt, um auch capturing verschachtelte Funktionen ohne Trampoline zu nutzen. Der Compiler transformiert diese automatisch in äquivalenten Code mit statischer Kette. Ein Beispiel zeigt, wie sich eine Callback-Funktion mit Kontext auf eine einzige Assembler-Instruktion optimieren lässt.
Der Compiler wird dies bereitwillig zu einer einzigen Assembler-Instruktion optimieren, die eine Multiplikation mit drei implementiert.