当编译/链接C/C++库或程序时,这些库或程序旨在适用于所有ISA(例如x86-64)的实现时,从正确性和运行时性能的角度来看,哪些优化标志是安全的?我想要的是产生正确结果并且不会对特定CPU性能造成负面影响的优化。例如,我想避免使用会在第8代Intel Core i7上提高运行时性能但会导致AMD Ryzen性能下降的优化标志。
PGO、LTO和-O3
是否安全?这完全取决于-march
和-mtune
(或缺少它们)吗?
当编译/链接C/C++库或程序时,这些库或程序旨在适用于所有ISA(例如x86-64)的实现时,从正确性和运行时性能的角度来看,哪些优化标志是安全的?我想要的是产生正确结果并且不会对特定CPU性能造成负面影响的优化。例如,我想避免使用会在第8代Intel Core i7上提高运行时性能但会导致AMD Ryzen性能下降的优化标志。
PGO、LTO和-O3
是否安全?这完全取决于-march
和-mtune
(或缺少它们)吗?