【问题标题】:How to tell gcc show me the list of optimization flags you used如何告诉 gcc 显示您使用的优化标志列表
【发布时间】:2019-02-26 23:59:56
【问题描述】:

我已阅读 gcc documentation 以获得优化选项。他们没有例子。

一个乏味的方法是使用godbolt 并尝试这么多选项,看看哪个选项适用于特定的优化标志。

我已经写了以下琐碎的代码:

#include <cmath>

double calculate(double x)
{
    int y=x+sin(x);
    return exp(x)+exp(-x);
}

int main(int argc,char *argv[])
{
    return ceil(calculate(argc));
}

我用它编译了它

g++ -Q -v -O3 main.cpp

它为我打印所有启用的优化标志,而不是使用的选项标志。我还需要知道特定函数的优化标志,不包括用于库的优化。

我如何获得用于编译calculate 函数的优化标志列表?

【问题讨论】:

  • 为什么不写一个make文件,用专门的定义为优化和非优化定义不同的构建目标呢?例如,ENABLE_OPTIMIZATION
  • @ravin.wang, 你如何只为单个函数指定优化标志?
  • 大多数编译器,如 gcc,不为单个函数指定优化。通常,整个项目都会以所需的优化级别进行编译。
  • @atrak 请看delorie.com/gnu/docs/gcc/cpp_22.html,您可以使用__OPTIMIZE__ 来检查是否启用了编译器优化。
  • 没有这样的选项。 a) 很难实施 b) 没用。如果你有一个特定的问题要解决,你应该问一下,我假设你错误地认为这个选项会帮助你。

标签: c++ c gcc optimization g++


【解决方案1】:

现代版本的 GCC 具有 -fverbose-asm 选项,该选项可转储在汇编文件的注释中启用的优化选项,您可以通过使用 -S-save-temps 编译获得该选项

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2011-07-30
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    相关资源
    最近更新 更多