推荐gcc来内联函数

时间:2010-05-20 20:37:25

标签: gcc inline

我不知道这是多么可行,这个问题在多大程度上是明智的。

我们可以在makefile中进行任何更改以推荐GCC内联所有函数,尽管函数在声明期间没有内联或在源文件中没有内联。

2 个答案:

答案 0 :(得分:3)

有几种方法可以制作gcc内联函数。其中一个是选项-finline-functions,它将使gcc内联“简单”功能。编译器使用一些启发式方法来确定函数是否足够小以便内联。但是,用户可以通过-finline-limit对此算法进行一些控制。阅读gcc手册以查找所需的实际值。

在内联函数时,您应该记住,显然并非所有函数都可以内联(最简单的示例是递归函数),并且编译器只能内联在同一个转换单元中定义的函数。此外,值得一提的是-finline-functions默认情况下在-O3处于启用状态,因此只有-O3可能是您的解决方案。

在makefile中,您必须为所有gcc调用添加正确的选项。在编写良好的makefile中,您可以轻松地使用其他gcc选项查找变量,您可以在其中放置自己的变量。

答案 1 :(得分:1)

gcc -finline_functions选项听起来像它可能会做你想要的。这是some documentation。如果你的makefile定义了一个CFLAGS变量,那么它就是放置它的地方。