cam*_*ccc 8 c c++ optimization gcc
我一直在研究一个相当大的性能关键代码库,用最新版本的gcc进行编译会给出关于类型惩罚的大量警告,这使我可以编译-fno-strict-aliasing
.我不相信这里有任何性能损失,无论如何都可以避免.但我确实认为,相同类型的别名指针可能存在更为重要的问题.
有没有办法让gcc或任何其他工具列出代码库中的所有位置,其中由于gcc无法检测到的潜在锯齿违规,指针是否属于同一类型而发生了额外的加载/存储?这样,我可以与代码分析器进行比较,看看是否可以通过使用restrict
,局部变量,重构等来改善实际情况的地方.试着通过查看生成的汇编程序来猜测编译器的想法是既费时又容易出错,特别是对此.如果它们不同,我对C和C++的答案感兴趣.