XL C/C++ Advanced Edition 是一个基于标准的、进行优化的命令行编译器,用于在具有 PowerPC 体系结构的 PowerPC 硬件上运行的 Linux 操作系统。该编译器使应用程序开发者可以创建和维护优化的 32 位和 64 位应用程序。这些应用程序可以使用自动或显式共享内存程序并行化来提高性能。PowerPC 体系结构可能实现的许多优化和性能改进由编译器选项、编译指示和编译器调用方式控制。因此,可以用最少的专门手工编码实现硬件体系结构的优点。
本产品是 IBM VisualAge C++ V6.0 for Linux 的后续发行版。IBM 已将 VisualAge C++ 品牌更改为 XL C/C++。
程序性能的重要改进在于利用 PowerPC 体系结构上可能实现的共享内存程序并行化(SMP)。编译器提供以下实现 SMP 的方法:
OpenMP 伪指令涉及定义迭代和非迭代代码的并行区域。
对于 C 语言,编译器支持两种 ISO 编程语言规范:ISO/IEC 9899:1990(称为 C89)和 ISO/IEC 9899:1999(C99)。编译器还支持全部两个 C++ 标准:ISO/IEC 14882:2003(称为标准 C++)和 ISO/IEC 14882:1998(该语言的第一个正式规范,称为 C++98)。除已标准化的语言级别之外,编译器还支持许多语言扩展,包括 GNU C 和 C++ 语言扩展的一部分。
XL C/C++ 支持 C++ 抽象二进制接口(ABI)。编译器生成二进制文件或目标文件,这些文件与通过 GNU C/C++ 版本 3.2 或 3.3 编译器创建的那些文件兼容。该编译器还支持 OpenMP V2.0 标准。符合 OpenMP 的 C 和 C++ 目标文件与通过 IBM XL Fortran for Linux 创建的目标文件是二进制兼容的,从而允许在 C 或 C++ 与 Fortran 之间进行语言间调用。
要获取与使用 GCC C 或 C++ 编译器进行编译的代码的二进制兼容性,用 XL C/C++ 编译的程序包括的头文件应与驻留在同一系统上的 GNU 编译器所使用的一样。该编译器在维护与由 GNU C 生成的目标的二进制兼容性的同时还优化程序。有关此关系的一些值得注意的地方是:
XL C/C++ 提供了一些基本编译器调用命令以供选择,这些命令支持 C 和 C++ 语言的各种版本级别。每个调用命令自动为语言级别、其它相关语言功能的选项以及任何相关的预定义宏设置编译器子选项。在大多数情况下,应使用 xlc 命令来编译 C 源文件,使用 xlC 命令来编译 C++ 源文件(或同时有 C 和 C++ 源文件时)。调用 xlc++ 等价于调用 xlC。
提供了基本命令的变体以支持特殊环境和文件系统的需求。变体是通过将后缀附加至基本命令形成的。在 Linux 平台上,提供了用于编译线程安全的应用程序的 _r 后缀。这些变体也称为可重入的调用。
另外,gxlc 和 gxlc++ 实用程序是专门的编译器调用形式。
相关参考
XL C/C++ 使用 GNU C 和 C++ 头文件,生成的应用程序是使用随操作系统装入的 gcc 级别提供的 C 和 C++ 运行时库链接的。 XL C/C++ 提供了 SMP 运行时库以支持 XL C/C++ 编译器的自动并行化和 OpenMP 功能部件。
高性能数学库
从版本 7 开始,XL C/C++ 附带已调整的数学内部函数的 IBM Mathematics Acceleration Subsystem(MASS)库 。MASS 库都是线程安全的并通过相应的 libm 例程提高了性能。此外,不需要更改代码就可以使用 MASS 库。编译器支持 332bit 位版本和 64 位版本的 MASS 向量库(分别是 libmassvp4.a 和 libmassvp4_64.a),这些向量库包含单精度和双精度的倒数例程和平方根函数。
XL C/C++ Advanced Edition 专门提供了下列命令来帮助程序开发。有关更多信息,参考 XL C/C++ Compiler Reference。
XL C/C++ 支持 Unicode 标准、多字节字符、UTF-16 和 UTF-32 字符串文字、多个装入的语言环境和双向性。这些功能使创建国际应用程序成为可能或更加容易。
相关参考
XL C/C++ Advanced Edition 提供以下形式的产品文档:
可以按如下方式找到或访问这些项:
自述文件 | 自述文件位于 /opt/ibmcmp/vacpp/7.0 和安装 CD 的根目录中。 |
手册页 | 为编译器调用和随产品提供的所有命令行实用程序提供了手册页。 |
基于 HTML 的帮助系统 | 提供了由 HTML 文件组成的帮助系统。该帮助系统也可作为产品“信息中心”的一部分联机获得。 |
PDF 文档 | PDF 文件位于 /opt/ibmcmp/pdf 目录中。它们可通过 Adobe Acrobat Reader 来查看和打印。如果您没有安装 Adobe Acrobat Reader,则您可从 http://www.adobe.com 下载它。 |
完整的 XL C/C++ PDF 文档库由以下文件组成:
要获取关于 XL C/C++ 的最新信息,请访问以下 URL 处的产品文档和支持页面。另外,IBM 技术支持组织开发的 IBM 红皮书包含基于来自实际经验的真实情况的技术信息。
您可能会发现下列红皮书对于 XL C/C++ 应用程序开发很有帮助:
_ POWER4 Processor Introduction and Tuning Guide,SG24-7041-00。
_ Understanding IBM eServer pSeries Performance and Sizing,SG24-4810-01。