-qlistfmt
适用的调用
| 选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
|---|---|---|---|---|
| -qlistfmt | ✓ | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
无。
用途
创建 XML 或 HTML 格式的报告,以帮助您寻找优化机会。
语法
缺省值
缺省情况下,此选项处于关闭状态。 如果未指定任何 contentSelectionList 子选项 ,则将生成所有可用的报告信息。 例如,指定 -qlistfmt=xml 等同于 -qlistfmt=xml=all。
参数
以下列表描述了 -qlistfmt 参数:
- xml | HTML
- 指示编译器以 XML 或 HTML 格式生成报告。 如果先前已生成 XML 报告,那么可以使用 genhtml 命令将该报告转换为 HTML 格式。 有关此命令的更多信息,请参阅 genhtml。
- contentSelectionList
- 以下子选项提供了一个过滤器,用于限制报告中信息的类型和数量:
- 数据 | nodata
- 生成数据重组信息。
- 内线 | noinlines
- 生成直接插入信息。
- pdf | nopdf
- 生成 概要文件导向的反馈信息。
- 变换 | notransform
- 生成循环变换信息。
- 全部
- 生成所有可用的报告信息。
- 无
- 不生成报告。
- 文件名
- 指定报告文件的名称。 会在编译阶段生成一个文件,
还会在 IPA 链接阶段生成一个文件。 如果未指定文件名,那么将以符合给定平台的名称生成规则的方式生成后缀为
.xml或.html的文件。 例如,如果foo.c文件已编译,那么生成的 XML 文件将foo.xml来自编译步骤,a.xml来自链接步骤。注: 如果在一个步骤中编译和链接,并使用此子选项为报告指定文件名,那么来自 IPA 链接步骤的信息将覆盖编译步骤期间生成的信息。如果使用filename子选项编译多个文件,那么情况也是如此。 编译器将为每个文件创建一个报告,以便编译的最后一个文件的报告将覆盖先前的报告。 例如
将仅生成一个报告,xlc -qlistfmt=xml=all:filename=abc.xml -O3 myfile1.c myfile2.c myfile3.cabc.xml基于最后一个文件的编译myfile3.c。 - 样式表
- 指定在生成的报告中嵌入了
xml-stylesheet伪指令的现有 XML 样式表的名称。 缺省行为是不包括样式表。 XL C/C++ 随附的样式表 提供的 是 xlstyle.xsl。 当通过支持 XSLT 的浏览器查看报告时,此样式表将 XML 报告呈现为易于阅读的格式。要查看使用 stylesheet 子选项创建的 XML 报告,必须将实际样式表 (xlstyle.xsl) 和 XML 消息目录 (XMLMessages-locale.xml 其中 locale 是指编译机器上设置的语言环境) 放在 stylesheet 子选项指定的路径中。 样式表和消息目录安装在 /opt/IBM/xlC/16.1.0/listings/ 目录中。
例如,如果使用 stylesheet=xlstyle.xsl生成
a.xml,那么 xlstyle.xsl 和 XMLMessages-locale.xml 必须与 a.xml位于同一目录中,然后才能使用浏览器正确查看 a.xml 。 - 版本
- 指定将生成的内容的主要版本。 如果您已编写需要此报 告的特定版本的工具,那么必须指定版本。
使用量
-qlistfmt 选项在报告中生成的信息取决于哪些优化选项用于编译器程序。
- 当您同时指定 -qlistfmt 和启用直接插入的选项 (例如 -qinline) 时,报告将显示直接插入的函数以及其他函数未直接插入的原因。
- 当您同时指定 -qlistfmt 和启用循环取消滚动的选项时,报告将包含程序循环优化方式的摘要。 该报告还包含有关无法对特定循环进行向量化的原因的诊断信息。 要使 -qlistfmt 生成有关循环变换的信息,还必须至少指定下列其中一个选项:
- -qhot
- -qsmp
- -O3 或更高版本
- 当您同时指定 -qlistfmt 和用于启用并行变换的选项时,报告将包含有关并行变换的信息。 要使 -qlistfmt 生成有关并行变换或并行性能消息的信息,还必须至少指定下列其中一个选项:
- -qsmp
- -O5
- -qipa=level=2
- 当您同时指定 -qlistfmt 和 -qpdf(这将启用概要分析) 时,报告将包含有关调用和块计数以及高速缓存不命中数的信息。
- 当您同时指定 -qlistfmt 和生成数据重组的选项 (例如 -qipa=level=2) 时,报告将包含有关这些重组的信息。
预定义的宏
无。
示例
如果要编译
myprogram.c 以生成显示如何优化循环的 XML 报告,请输入:xlc -qhot -O3 -qlistfmt=xml=transforms myprogram.c
如果要编译
myprogram.c 以生成显示内联函数的 XML 报告,请输入:xlc -qinline -qlistfmt=xml=inlines myprogram.c
