# 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.

## IDE Equivalent

None

## Alternate Options

None

Parent topic: Optimization Options