Developer Guide and Reference

Contents

foptimize-sibling-calls

Determines whether the compiler optimizes tail recursive calls.

Syntax

Linux:
-foptimize-sibling-calls
-fno-optimize-sibling-calls
macOS:
-foptimize-sibling-calls
-fno-optimize-sibling-calls
Windows:
None
Arguments
None
Default
-foptimize-sibling-calls
The compiler optimizes tail recursive calls.
Description
This option determines whether the compiler optimizes tail recursive calls. It enables conversion of tail recursion into loops.
If you do not want to optimize tail recursive calls, specify
-fno-optimize-sibling-calls
.
Tail recursion is a special form of recursion that doesn't use stack space. In tail recursion, a recursive call is converted to a GOTO statement that returns to the beginning of the function. In this case, the return value of the recursive call is only used to be returned. It is not used in another expression. The recursive function is converted into a loop, which prevents modification of the stack space used.
Alternate Options
None