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

时间:2016-09-24 15:02:19

标签: c++ c gcc

clang / gcc是否有办法执行英特尔icc对#pragma forceinline recursive或其他任何接近的操作?

#pragma forceinline [recursive]
     

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

     

forceinline pragma表示只要编译器能够这样做,就应该内联有问题的调用。

     

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

     

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

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

我不想使用__attribute__((always_inline)),因为它适用于函数。在我的情况下,功能并不是很小。我想让编译器在大多数情况下确定何时内联它。此外,尽管此属性非常强大,但它仍然不是“始终”。更改全局选项(如内联深度和大小限制)也不理想。

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

0 个答案:

没有答案