-qreport

适用的调用

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

类别

清单、消息和编译器信息

等效编译指示

无。

用途

生成用于显示代码段优化方式的列表文件。

将为命令行上列出的每个源文件生成具有 .lst 后缀的列表文件。 使用启用 自动并行化或 向量化的选项指定 -qreport 时,列表文件将显示伪C 代码列表以及程序循环如何 并行化或 优化的摘要。 该报告还包含有关特定循环无法 并行化或 向量化的原因的诊断信息。 例如,当 -qreport-qsimd一起指定时,将提供消息以标识阻止循环矢量化的非条带分割引用。

编译器还报告为给定循环创建的流的数量,包括负载流和存储流。 此信息包含在列表文件的 Loop Transformation 部分中。 可以使用此信息来了解应用程序代码并调整代码以获得更好的性能。 例如,您可以分发一个循环,该循环具有比底层体系结构所支持的数量更多的流。 POWER4 和 POWER5 处理器支持负载流预取,而 或更高版本的处理器则同时支持负载流和存储流预取。 POWER6

语法

读取语法图跳过可视语法图  -q noreportreport

缺省值

-qnoreport

使用量

要生成循环变换列表,必须使用以下某个选项指定 -qreport
  • -qhot
  • 基于 XL 的前端开始-qsmp
  • -O3 或更高版本

可以同时指定 -qreport-qpdf2 以在列表文件中生成信息来帮助您调整程序。 此信息将写入“PDF Report”部分中。

要生成并行变换列表或并行性能消息,必须使用 下列其中一个选项指定 -qreport :
  • 基于 XL 的前端开始-qsmp
  • -O5
  • -qipa=level=2

要生成数据重组信息,请使用优化级别 -qipa=level=2-O5指定 -qreport 。 重组包括数组拆分,数组转换,内存分配合并,数组交错和数组合并。

要生成有关数据预取插入位置的信息,请使用优化级别 -qhot 或任何其他暗示 -qhot的选项指定 -qreport 。 此信息显示在列表文件的 LOOP TRANSFORMATION SECTION 中。 此外,使用 -qprefetch=assistthread 生成预取辅助线程时,将显示以下消息:Assist thread for data prefetching was generated也会显示在列表文件的 LOOP TRANSFORMATION SECTION 中。

基于 XL 的前端开始要生成列表文件 LOOP TRANSFORMATION SECTION 中循环嵌套的激进循环转换和并行化列表,请使用优化级别 -qhot=level=2-qsmp 以及 -qreport基于 XL 的前端端

C 代码列表不是可编译的。 请勿在程序中包含任何伪C 代码,也不要显式调用其名称可能出现在伪C 代码列表中的任何内部例程。

预定义的宏

无。

示例

要编译 myprogram.c 以使编译器列表包含显示如何优化循环的报告,请输入 以下命令:
xlc -qhot -O3 -qreport myprogram.c
基于 XL 的前端开始要编译 myprogram.c ,以便编译器列表中包含一个报告,显示并行循环是如何转换的,请输入以下命令:
xlc_r -qhot -qsmp -qreport myprogram.c
基于 XL 的前端端

相关信息