Eon*_*nil 7 c clang tail-call-optimization
我正在尝试尽可能用C编写功能样式的程序.我知道像GCC/Clang这样的优秀编译器可以默默地进行尾部调用优化,但是不能保证.是否有任何选项可以强制编译器进行尾调用优化?(当然只有在它自己结束时才被调用)
Clang根本没有做任何优化.有一个LLVM传递tailcallelim可以做你想要的(但不保证).您可以单独运行它opt.
小智 5
Clang 13“musttail”属性强制尾递归函数中的尾调用优化,即使优化被禁用。
https://clang.llvm.org/docs/AttributeReference.html#musttail
用法:
int f(int x) {
...
__attribute__((musttail)) return f(x-1);
}
Run Code Online (Sandbox Code Playgroud)