gpt4 book ai didi

c++ - 通过分析汇编列表验证 gcc/g++ 中的编译器优化

转载 作者:可可西里 更新时间:2023-11-01 16:26:04 28 4
gpt4 key购买 nike

我刚刚问了一个与编译器如何优化某些 C++ code 有关的问题,我正在四处寻找关于如何验证编译器是否执行了某些优化的任何问题。我试图查看使用 g++ (g++ -c -g -O2 -Wa,-ahl=file.s file.c) 生成的程序集列表,以了解幕后发生的事情,但输出对我来说太神秘了。人们使用什么技术来解决这个问题,是否有关于如何解释优化代码的汇编列表或特定于 GCC 工具链的文章的任何很好的引用来讨论这个问题?

最佳答案

GCC 的优化过程以一种名为 GIMPLE 的格式处理代码的中间表示。 .

使用 -fdump-* family of options ,你可以要求 GCC 输出树的中间状态。

例如,将其提供给 gcc -c -fdump-tree-all -O3

unsigned fib(unsigned n) {
if (n < 2) return n;
return fib(n - 2) + fib(n - 1);
}

并观察它逐渐从简单的指数算法转变为复杂的多项式算法。 (真的!)

关于c++ - 通过分析汇编列表验证 gcc/g++ 中的编译器优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016781/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com