gcc -finline-functions 选项

发布于 2024-12-06 16:20:15 字数 412 浏览 1 评论 0原文

我有一个关于 -finline-function 选项的问题

我们正在测试我们实现的函数是否成功内联。 以下是观察结果:

  1. 函数正在针对 -01、-O2 和 -O3 优化级别进行内联。
  2. 这些函数不会内联到优化级别 -O0,这是预期的。

当我们尝试同时使用 -O0 和 -finline-functions 进行编译时,我们仍然观察到函数没有被内联。我们甚至尝试了一种非常简单的方法(一行返回语句)并观察到相同的结果。

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

问候

I have a question regarding the -finline-function options

We are testing whether the function which we have implemented is getting successfully inlined.
Here are the observation

  1. The functions are getting inlined for -01,-O2 and -O3 optimization levels.
  2. The functions are not getting inlined for optimization level -O0, which is expected.

When we tried compiling using -O0 and -finline-functions together, we still observed that the functions are not getting inlined. we even tried for a very simple method(one line return statement) and observed the same result.

So it seems that usage of -finline-functions flag along with -O0 is redundant(It will not make functions inline). I am still searching if this behavior is documented somewhere in gcc/g++ manual. Please let us know if anyone has exact idea about how g++ works specify -finline-functions and -O0 together.

Regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

差↓一点笑了 2024-12-13 16:20:15

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

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

From the gcc manual ( http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html ):

Most optimizations are only enabled if an -O level is set on the command line. Otherwise they are disabled, even if individual optimization flags are specified.

夕色琉璃 2024-12-13 16:20:15

像这样定义你的函数 inline void foo (const char) __attribute__((always_inline));

来自网站 (https://gcc.gnu.org/onlinedocs/gcc/Inline.html)

define your function like this inline void foo (const char) __attribute__((always_inline));

From website (https://gcc.gnu.org/onlinedocs/gcc/Inline.html)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文