ICC vs GCC-优化和CPU架构

ICC vs GCC-优化和CPU架构,gcc,x86,compiler-construction,64-bit,icc,Gcc,X86,Compiler Construction,64 Bit,Icc,我很想知道GCC和Intel的ICC在优化级别和迎合特定处理器架构方面有何不同。我在Linux上使用GCC4.1.220070626和ICCV11.1 如果ICC的优化水平(O1到O3)与GCC有什么不同 ICC能够专门针对不同的体系结构(IA-32、intel64和IA-64)。我已经读到GCC有-march编译器选项,我认为类似,但我找不到要使用的选项列表。我使用的是64位的英特尔至强X5570。是否有任何其他GCC编译器选项可供我的64位Intel CPU应用程序使用?有关适用于这些体系结

我很想知道GCC和Intel的ICC在优化级别和迎合特定处理器架构方面有何不同。我在Linux上使用GCC4.1.220070626和ICCV11.1

如果ICC的优化水平(O1到O3)与GCC有什么不同


ICC能够专门针对不同的体系结构(IA-32、intel64和IA-64)。我已经读到GCC有
-march
编译器选项,我认为类似,但我找不到要使用的选项列表。我使用的是64位的英特尔至强X5570。是否有任何其他GCC编译器选项可供我的64位Intel CPU应用程序使用?

有关适用于这些体系结构的所有选项的完整列表和说明,请参阅GCC手册第3.17.15节(IA-64是安腾,您不太可能有这些选项)

在这方面,最重要的选择是:

  • -m64
    生成64位代码
  • -march=
    为特定CPU类型生成指令;及
  • -mtune=
    调整特定CPU类型的代码

调整选项,分解代码并查看差异

-march=native是使用生成机器的完整指令集的gcc选项。icc可能会注意到这一点,但有一个等效选项——xHost。在回答此问题时,icc选项可能仅适用于英特尔CPU。

这不是一个非常有用的答案,因为这只适用于他已经拥有的代码,而不适用于他将来可能编写的代码。您如何衡量GCC或icc优化器对不存在的代码的有效性?