GCC/Clang相当于Intel ICC#pragma forceinline递归

Yan*_*hou 5 c c++ gcc

clang/gcc是否有办法执行英特尔icc所做的#pragma forceinline recursive事情或与之相近的事情?

#pragma forceinline [recursive]
Run Code Online (Sandbox Code Playgroud)

指定语句中所有调用的内联.

forceinlinepragma表示只要编译器能够这样做,就应该内联所讨论的调用.

recursive 表示该pragma适用于这些调用在调用链中递归调用的所有调用

这些是特定于语句的内联编译指示.每个都可以放在C/C++语句之前,然后应用于语句中的所有调用以及嵌套在该语句中的语句中的所有调用.

(https://software.intel.com/en-us/node/524498)

我宁愿不使用,__attribute__((always_inline))因为它适用于功能.在我的情况下,功能并不是很小.我想让编译器在大多数情况下确定何时内联它.此外,虽然这个属性很强,但它仍然不是" 永远 ".更改全局选项(如内联深度和大小限制)也不理想.

但是,在某些特定情况下,我知道内联函数可以对性能产生很大影响(在我的情况下,系数为2).英特尔#pragma inline/forceinline [recursive]适用于个人陈述,具有我想要的效果.GCC或clang是否有任何类似的东西只会影响函数的特定调用站点?