gpt4 book ai didi

c++ - 是否可以列出由于潜在的混叠违规而导致的负载?

转载 作者:可可西里 更新时间:2023-11-01 17:59:27 26 4
gpt4 key购买 nike

我一直在处理一个相当大的性能关键代码库,其中使用最新版本的 gcc 进行编译会给出大量关于类型双关的警告,导致我使用 -fno-strict-aliasing 进行编译。我不相信这里有任何可以避免的性能损失。然而,我确实相信相同类型的别名指针可能存在更重要的问题。

是否有任何方法可以让 gcc 或任何其他工具列出代码库中由于 gcc 无法检测到的潜在别名违规而发生额外加载/存储的所有位置,指针是否属于同一类型或不?这样,我就可以与代码分析器进行比较,看看是否可以通过使用 restrict、局部变量、重构等在实际重要的地方改善情况。尝试猜测编译器的内容通过查看生成的汇编程序来思考既费时又容易出错,尤其是对于这个。如果 C 和 C++ 不同,我对它们的答案很感兴趣。

最佳答案

GCC Debug options

试试 -ftree-dump-alias(在上面的链接中搜索别名)。

关于c++ - 是否可以列出由于潜在的混叠违规而导致的负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26339141/

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