gcc - ICC 与 GCC - 优化和 CPU 架构

标签 gcc x86 compiler-construction 64-bit icc

我很想知道 GCC 在优化级别和迎合特定处理器架构方面与英特尔的 ICC 有何不同。我在 Linux 上使用 GCC 4.1.2 20070626 和 ICC v11.1。

ICC 的优化级别(O1 到 O3)与 GCC 有何不同(如果它们完全不同)?

ICC 能够专门迎合不同的架构(IA-32、intel64 和 IA-64)。我读过 GCC 有 -march我认为类似的编译器选项,但我找不到要使用的选项列表。我使用的是 64 位的 Intel Xeon X5570。我可以使用其他任何 GCC 编译器选项来满足我的 64 位 Intel CPU 应用程序吗?

最佳答案

请参阅 GCC 手册中的第 3.17.15 节,ie386 and x86-64 Options有关适用于这些架构的所有选项的完整列表和说明(IA-64 是 Itanium,您不太可能拥有其中之一)。

在这种情况下,最重要的选项是:

  • -m64生成64位代码;
  • -march=生成特定 CPU 类型的指令;和
  • -mtune=调整特定 CPU 类型的代码。
  • 关于gcc - ICC 与 GCC - 优化和 CPU 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2497265/

    相关文章:

    c - MiniFMOD编译

    c# - 将 C# 代码翻译成 AST?

    c++ useless-cast from size_t to uint32_t for different targets

    c - 为什么 sizeof(void) == 1?

    gcc - assembly 中的位测试 (BT)

    assembly - 在两个内存地址之间移动

    c++ - 同一段代码,可以在xcode中编译,也可以在terminal中用g++、clang++编译,不能用gcc或clang编译。为什么?

    c - 如何实现确定性 malloc

    assembly - 为什么我的代码在添加 .386 时不起作用?

    java - 寄存器分配中的预着色节点 - 每种颜色最多一种?