gcc -finline-functions选项

时间:2011-09-26 13:01:23

标签: gcc inline compiler-optimization

我对-finline-function options

有疑问

我们正在测试我们实现的功能是否成功内联。 这是观察

  1. 函数内联-01,-O2和-O3优化级别。
  2. 这些功能没有内嵌到优化级别-O0,这是预期的。
  3. 当我们尝试一起使用-O0和-finline-functions进行编译时,我们仍然发现这些函数没有内联。我们甚至尝试了一个非常简单的方法(一行返回语句)并观察到相同的结果。

    因此似乎使用-finline-functions标志和-O0是多余的(它不会使函数内联)。我仍在搜索gcc / g ++手册中是否记录了这种行为。如果有人确切知道g ++如何工作指定-finline-functions和-O0,请告诉我们。

    此致

2 个答案:

答案 0 :(得分:3)

来自gcc手册(http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html):

  

只有在命令行上设置-O级别时,才会启用大多数优化。否则,即使指定了单独的优化标志,它们也会被禁用。

答案 1 :(得分:0)

像这样inline void foo (const char) __attribute__((always_inline));

定义您的功能

从网站(https://gcc.gnu.org/onlinedocs/gcc/Inline.html