gpt4 book ai didi

c - -finline-limit GCC 编译器选项的确切行为

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:11 25 4
gpt4 key购买 nike

我正在使用 GCC 的 -finline-limit=<i>N</i>编译器选项。我正在编译我的代码并对其进行分析以检查 CPU 周期是否减少。当我增加 N 时,理想情况下,随着更大的函数被内联,我应该看到循环次数减少。但我看到 CPU 周期增加了。为什么会这样?

最佳答案

在 gcc 中有多个用于内联的参数 (--param)。 finline-limit 使用了其中的一些。

你可以在这里找到参数:

gcc optimize-options (搜索 max-inline-insns-single)

您可以从源代码中获取有关 GCC 内联启发式算法的一些信息: ipa-inline-analysis.c (置顶评论)

注意:通过内联减少函数调用、分支等并不总能减少 CPU 周期。将 finline-limit 设置为较大的数字会使事情变得更糟。在函数上使用 __attribute__ ((flatten)) 可以产生更好的结果。根据您的指令集和编译器版本,所有优化参数都会产生不同的结果。

关于c - -finline-limit GCC 编译器选项的确切行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600152/

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