如何设置 C/C++ 编译器选项以获得对正在使用的 CPU 的最佳优化?

How to set C/C++ compiler options for best optimizations for the CPU in use?

要构建针对特定 CPU 的最佳优化的二进制文件,如何设置 C/C++ 编译器选项?例如,当 CPU 功能可用时,尝试使用 MMX/3DNow!/SSE/SSE2/SSE3 等功能。

GCC 和 Clang 支持 -march=native 到 select CPU 从编译器正在执行的处理器类型生成代码,并 -mtune=native 为其优化代码.请注意,这些开关在特定体系结构部分中列出,例如 X86 或 ARM 体系结构,因此它们可能不适用于编译器支持的所有体系结构。

如果要生成不需要在其他处理器型号上执行的代码,请使用 -march=native-march=native 表示 mtune=native.

如果您想生成针对当前处理器调整的代码,但仍可以在处理器模型上执行,则可以在不使用 -march=native 的情况下使用 -mtune=native