-qarch (-mcpu)

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-qarch
-mcpu    
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

优化和调整

等效编译指示

无。

用途

指定应为其生成代码(指令)的处理器体系结构。

语法

读取语法图跳过可视语法图  -q arch = pwr4autopwr5pwr5xpwr6pwr6epwr7pwr8pwr9ppcppc64vppc64ppcgrppc64grppc64grsqppc970
读取语法图跳过可视语法图  -m cpu = pwr4power4nativepwr5power5pwr6power6pwr7power7pwr8power8pwr9power9ppc64grsqppc970

缺省值

  • -qarch=pwr4 or -mcpu=pwr4
  • -qarch=auto-mcpu=native (当 -O4-O5 生效时)

参数

自动
自动检测编译机器的特定体系结构。 它假定执行环境将与编译环境相同。 如果设置或隐式设置了 -O4-O5 选项,那么隐式设置此选项。
基于 Clang 的前端开始本机
自动检测编译机器的特定体系结构。 它假定执行环境将与编译环境相同。 如果设置或隐式设置了 -O4-O5 选项,那么隐式设置此选项。
ppc
建议不要使用此子选项。 即使它仍被接受,也会以静默方式升级到 -qarch=pwr4
ppc64
建议不要使用此子选项。 即使它仍被接受,也会以静默方式升级到 -qarch=pwr4
ppc64gr
建议不要使用此子选项。 即使它仍被接受,也会以静默方式升级到 -qarch=pwr4
ppc64grsq
建议不要使用此子选项。 即使它仍被接受,也会以静默方式升级到 -qarch=pwr4
ppc64v
生成具有向量处理器的通用 PowerPC® 芯片的指示信息,例如 PowerPC 970。 在 32 位或 64 位方式下有效。
ppc970
生成特定于 PowerPC 970 体系结构的指示信息。
ppcgr
建议不要使用此子选项。 即使它仍被接受,也会以静默方式升级到 -qarch=pwr4
pwr4
生成包含指令的目标代码,这些指令将在 POWER4、 POWER5、 POWER5+、 POWER6、 POWER7、 POWER7+、 POWER8、 POWER9 或 PowerPC 970 硬件平台上运行。
pwr5
生成包含将在 POWER5, POWER5+, POWER6, POWER7, POWER7+, POWER8POWER9 硬件平台上运行的指令的对象代码。
pwr5x
生成包含将在 POWER5+, POWER6, POWER7, POWER7+, POWER8POWER9 硬件平台上运行的指令的对象代码。
pwr6
生成包含将在 POWER6 硬件平台 (以 POWER6 体系结构方式运行) 或 POWER7, POWER7+, POWER8POWER9 硬件平台上运行的指令的对象代码。基于 XL 的前端开始 如果您需要十进制浮点指令的支持,请务必在编译时指定此子选项。基于 XL 的前端端
pwr6e
生成包含将在以 POWER6 增强方式运行的 POWER6 硬件平台上运行的指令的对象代码。
pwr7
生成包含将在 POWER7, POWER7+, POWER8POWER9 硬件平台上运行的指令的对象代码。
pwr8
生成包含将在 POWER8 和 POWER9 硬件平台上运行的指令的对象代码。
pwr9
生成包含将在 POWER9 硬件平台上运行的指令的对象代码。

使用量

所有 PowerPC 机器共享一组公共指令,但也可能包含给定处理器或处理器系列独有的其他指令。 使用 -qarch 选项将特定体系结构作为编译的目标将生成可能未在其他体系结构上运行但为所选体系结构提供最佳性能的代码。 如果您希望在特定体系结构上实现最大性能,并且不会在其他体系结构上使用该程序,请使用相应的体系结构选项。 如果要生成可以在多个体系结构上运行的代码,请指定支持一组体系结构的 -qarch 子选项。 表 2 显示了不同处理器体系结构支持的功能部件及其代表 -qarch 子选项:

表 2。 处理器体系结构中的功能部件支持
体系结构 图形支持 平方根支持 64 位支持 向量处理支持 大页面支持
pwr4
pwr5
pwr5x
ppc
ppc64
ppc64gr
ppc64grsq
ppc64v VMX
ppc970 VMX
pwr6 VMX
pwr6e VMX
pwr7 VMX 和 VSX
pwr8 VMX 和 VSX
pwr9 VMX 和 VSX
注: 向量多媒体扩展 (VMX) 和向量标量扩展 (VSX) 是用于向量处理的处理器指令。

对于任何给定的 -qarch 设置,编译器缺省为特定的匹配 -qtune 设置,这可以提供其他性能改进。 或者,如果使用 group 参数指定 -qarch,则可以将 -qtune 指定为 auto 或在组中提供特定架构。 有关将 -qarch-qtune 一起使用的详细信息,请参阅 -qtune (-mtune)

对于给定的应用程序,请确保在编译其每个源文件时指定相同的 -qarch 设置。 虽然链接程序和装入程序可能会检测到使用不兼容的 -qarch 设置编译的对象文件,但您不应依赖该对象文件。

预定义的宏

请参阅 与体系结构设置相关的宏 ,以获取 -qarch 子选项预定义的宏的列表。

示例

要指定编译自 myprogram.c 的可执行程序 testing 将在具有 VSX 指令支持的计算机上运行,例如, power8,请输入:
xlc -o testing myprogram.c -qarch=pwr8

相关信息