-qreport
适用的调用
| 选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
|---|---|---|---|---|
| -qreport | ✓ | ✓ | ✓ | ✓ |
类别
等效编译指示
无。
用途
生成用于显示代码段优化方式的列表文件。
将为命令行上列出的每个源文件生成具有 .lst 后缀的列表文件。 使用启用 自动并行化或 向量化的选项指定 -qreport 时,列表文件将显示伪C 代码列表以及程序循环如何 并行化或 优化的摘要。 该报告还包含有关特定循环无法 并行化或 向量化的原因的诊断信息。 例如,当 -qreport 与 -qsimd一起指定时,将提供消息以标识阻止循环矢量化的非条带分割引用。
编译器还报告为给定循环创建的流的数量,包括负载流和存储流。 此信息包含在列表文件的 Loop Transformation 部分中。 可以使用此信息来了解应用程序代码并调整代码以获得更好的性能。 例如,您可以分发一个循环,该循环具有比底层体系结构所支持的数量更多的流。 POWER4 和 POWER5 处理器支持负载流预取,而 或更高版本的处理器则同时支持负载流和存储流预取。 POWER6
语法
缺省值
-qnoreport
使用量
- -qhot
-qsmp- -O3 或更高版本
可以同时指定 -qreport 和 -qpdf2 以在列表文件中生成信息来帮助您调整程序。 此信息将写入“PDF Report”部分中。
-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 中。
要生成列表文件 LOOP TRANSFORMATION SECTION 中循环嵌套的激进循环转换和并行化列表,请使用优化级别 -qhot=level=2 和 -qsmp 以及 -qreport。
伪C 代码列表不是可编译的。 请勿在程序中包含任何伪C 代码,也不要显式调用其名称可能出现在伪C 代码列表中的任何内部例程。
预定义的宏
无。
示例
myprogram.c 以使编译器列表包含显示如何优化循环的报告,请输入 以下命令:xlc -qhot -O3 -qreport myprogram.c
要编译 myprogram.c ,以便编译器列表中包含一个报告,显示并行循环是如何转换的,请输入以下命令:xlc_r -qhot -qsmp -qreport myprogram.c

