是否可以列出由于潜在的锯齿违规而导致的负载?

时间:2014-10-13 11:39:53

标签: c++ c gcc optimization

我一直在开发一个相当大的性能关键代码库,在这里使用最新版本的gcc进行编译会发出很多关于类型惩罚的警告,导致我使用-fno-strict-aliasing进行编译。我不相信这里有任何性能损失,无论如何都可以避免。但我确实认为,对于相同类型的别名指针可能存在更为重要的问题。

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

1 个答案:

答案 0 :(得分:1)

GCC Debug options

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