-qlistfmt

适用的调用

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

类别

清单、消息和编译器信息

等效编译指示

无。

用途

创建 XML 或 HTML 格式的报告,以帮助您寻找优化机会。

语法

读取语法图跳过可视语法图 -q listfmt=xmlhtml=:contentSelectionListfilename=文件名version=版本号stylesheet=文件名

缺省值

缺省情况下,此选项处于关闭状态。 如果未指定任何 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.c
将仅生成一个报告, abc.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.xslXMLMessages-locale.xml 必须与 a.xml位于同一目录中,然后才能使用浏览器正确查看 a.xml

版本
指定将生成的内容的主要版本。 如果您已编写需要此报 告的特定版本的工具,那么必须指定版本。
例如, IBM® XL C/C++ for AIX® 16.1 在 XML v1.1上创建报告。 如果您已编写工具来使用这些报告,请指定 version=v1

使用量

-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

相关信息