IBM XL C/C++ Compilers: Difference between revisions

Content deleted Content added
Amarji25 (talk | contribs)
I removed one such sentence which was like an advertisement
 
(36 intermediate revisions by 22 users not shown)
Line 5:
}}
{{Infobox software
| name = XL C/C++ Compilers and Open XL C/C++ Compilers
| logo =
| screenshot =
Line 11:
| collapsible =
| developer = [[IBM]]
| latest_release_version = 1617.1.1 (LinuxAIX on Power, forLinux little-endianon distributionsPower), 1.1 (z/OS)
| latest_release_date = December{{Start 2018date and age|2022|09}} (Linux on Power), {{Start date and age|2022|11}} (AIX on Power), {{Start date and age|2022|05}} (z/OS)
| latest_preview_version =
| latest_preview_date =
Line 19:
| programming_language =
| genre = [[Software development]]
| license = [[Proprietary software|Proprietary]]
| website = {{URL|https://www.ibm.com/products/c-and-c-plus-plus-compiler-family}}
}}
 
'''XL C/C++''' is the name of [[IBM]]'s [[proprietary software|proprietary]] optimizing [[C (language)|C]]/[[C++]] compilercompilers for IBM-supported environments.
 
==Compiler==
The IBM XL compilers are built from modularized components consisting of front ends (for different [[Programming language|programming languages]]), a platform -agnostic high -level optimizer, and platform-specific low-level optimizers/code generators to target specific hardware and operating systems. The XL C/C++ compilers target POWER, BlueGene/Q, and [[zIBM SystemsZ]] hardware architectures.
 
=== Optimization ===
A common high level optimizer across the POWER and [[z/OS]] XL C/C++<ref>[https://www.ibm.com/products/xl-cpp-compiler-zos z/OS XL C/C++]</ref> compilers optimizes the source program using platform-agnostic optimizations such as [[interprocedural analysis]], [[profile-directed feedback]], and loop and vector optimizations.
 
A low-level optimizer on each platform performs function-level optimizations, and generates optimized code for a specific operating system and hardware platformplatforms.
 
The particular optimizations performed for any given compilation depend upon the optimization level chosen under option control (O2 to O5) along with any other optimization-related options, such as those for interprocedural analysis or [[loop optimization]]s.
 
The XL compilers on AIX have delivered, leadershipfor scoresexample, in the [[Standard Performance Evaluation Corporation|SPEC]] CPU2000 and CPU2006 benchmarks,Floating inPoint combinationscore withof specific71.5 IBMin POWERMay system processor announcements, for example SPEC CPU2006 Floating Point2010<ref>[http://www.spec.org/cpu2006/results/res2010q2/#SPECfp|SPEC CPU2006 Floating Point]</ref> and score of 71.54051 in May 2010 andAugust 2006.<ref>[http://www.spec.org/cpu2000/results/res2006q3/ SPEC CPU2000 Floating Point]</ref> score of 4051 in August 2006.
A 60-day installable evaluation version is available for download for XL C/C++ for AIX. <ref>[https://www.ibm.com/products/xl-cpp-aix-compiler-power/ XL C/C++ for AIX evaluation version]</ref> In June 2016, IBM introduced XL C/C++ for Linux Community Edition, which is a no-charge and fully functional
edition for unlimited production use.<ref>[https://www.ibm.com/products/xl-cpp-linux-compiler-power XL C/C++ for Linux Community Edition]</ref>
 
=== IBM i ===
The XL compilers on AIX have delivered leadership scores in the [[Standard Performance Evaluation Corporation|SPEC]] CPU2000 and CPU2006 benchmarks, in combination with specific IBM POWER system processor announcements, for example SPEC CPU2006 Floating Point<ref>[http://www.spec.org/cpu2006/results/res2010q2/#SPECfp|SPEC CPU2006 Floating Point]</ref> score of 71.5 in May 2010 and <ref>[http://www.spec.org/cpu2000/results/res2006q3/ SPEC CPU2000 Floating Point]</ref> score of 4051 in August 2006.
The XL compiler on IBM i series for C/C++, is called ixlc. It is a qsh CLI based on the same assets than the CRTCPPMOD / CRTPGM system commands. It is compatible with C++98, and partially with C++11. It was discontinued in 2011.
 
=== IBM AIX and Linux on Power ===
Current (2016) versions of the XL C/C++ compilers support a subset of the C++03 standard on AIX; while XL C/C++ for Linux (Power) v13.1.3 supports C++11.
Current versions of XL C/C++ for AIX on Power (17.1.1) and XL C/C++ for [[Linux]] on Power (17.1.1),<ref name="xlc-linux-1711">[https://www.ibm.com/support/pages/system/files/inline-files/openxl_cpp_lop_1711_fact_sheet.pdf IBM Open XL C/C++ for Linux on Power 17.1.1]</ref> are based on open-source [[Clang]] front-end (part of the Clang/LLVM open source project). In particular, XL C/C++ for AIX 17.1.0 is based on LLVM Clang 13.<ref>[https://www.ibm.com/docs/en/openxl-c-and-cpp-aix/17.1.0?topic=migration-migrating-new-llvm-clang-compiler-infrastructure Migrating to the new LLVM and Clang compiler infrastructure]</ref> Both compilers provide support for C11, C++03, C++11, and C++14. Note that while XL C/C++ for Linux on Power supports at least C++17,<ref name="xlc-linux-1711" /> some library features later than C++14 may be unavailable under XL C/C++ for AIX on Power.<ref>{{citation|url=https://www.ibm.com/docs/en/openxl-c-and-cpp-aix/17.1.0?topic=infrastructure-language-support|title="IBM Open XL C/C++ for AIX" - 17.1.0 - Language support}}</ref>
 
==== Licensing ====
The XL C/C++ compiler for Linux on Power [[little endian]] edition, released in December 2014, is based on the open source [[Clang]] front end (part of the Clang/LLVM open source project) and therefore provides a higher level of language and GCC compatibility than IBM C/C++ compilers on other platforms, although that support is a subset of what Clang/LLVM itself supports.
 
A 60-day installable evaluation version is available for download for XL C/C++ for AIX. <ref>[https://www.ibm.com/products/xl-cpp-aix-compiler-power/ XL C/C++ for AIX evaluation version]</ref> In June 2016, IBM introduced XL C/C++ for Linux Community Edition, which is a no-charge and fully functional edition for unlimited production use.<ref>[https://www.ibm.com/products/xl-cpp-linux-compiler-power XL C/C++ for Linux Community Edition]</ref>
The z/OS XL C/C++ compiler exploits the latest IBM Z® systems, including the latest IBM z14® servers. It enables development of high-performing business applications and system programs on z/OS, while maximizing hardware use and improving application performance. IBM z/OS XL C/C++ uses services provided by the z/OS Language Environment® and Runtime Library Extensions base elements. It supports embedded CICS® and SQL statements in C/C++ source, which simplifies the operation of C/C++ within CICS and DB2® environments. It works in concert with IBM Application Delivery Foundation for z Systems® family of products.
 
A new monthly pricing option is offered in XL C/C++ for AIX 16.1 and XL Fortran for AIX 16.1 to provide more flexibility for cloud-based use cases. This pricing model is on a term or subscription basis, with Software Subscription and Support included.
IBM XL C/C++ V2.3.1 for z/OS® V2.3 web deliverable is the latest offering from the IBM XL C/C++ compiler family, which provides new C and C++ compilers that adopt the Clang infrastructure from the LLVM open source community for a portion of the compilers. z/OS XL C/C++ V2.3.1 is designed to aid in porting code from other platforms to z/OS and to give a more familiar view to developers who are accustomed to a UNIX environment. IBM XL C/C++ V2.3.1 for z/OS V2.3 provides support for the core C11 standard and most of the C++11 standard features for easier application migration to IBM Z® servers.
 
IBM Open XL compilers offer monthly licenses (per Virtual Processor Core); meanwhile, user-based licenses (i.e. Authorized user and Concurrent user licenses) are still available.
 
=== IBM Z ===
The z/OS XL C/C++ compiler exploits the latest IBM Z® systems, including the latest IBM z14® servers. It enables the development of high-performing business applications and system programs on z/OS, while maximizing hardware use and improving application performance. IBM z/OS XL C/C++ uses services provided by the z/OS Language Environment® and Runtime Library Extensions base elements. It supports embedded CICS® and SQL statements in the C/C++ source, which simplifies the operation of C/C++ within CICS and DB2Db2® environments. It works in concert with the IBM Application Delivery Foundation for z Systems® family of products/OS.
 
IBM® Open XL C/C++ 1.1 for z/OS® is the newest C/C++ compiler on z/OS that is fully based on the open source LLVM infrastructure. Open XL C/C++ 1.1 supports up to C17/C18 and C++17 language standard features and leverages the features of the IBM z16™ mainframe, ideal for z/OS UNIX System Services users porting applications from distributed platforms. Open XL C/C++ 1.1 is available as a no-charge add-on feature for users who have enabled the z/OS XL C/C++ (an optionally priced feature) on z/OS 2.4 or z/OS 2.5.
 
==Products==
TheXL C/C++ and Open XL C/C++ compiler familyfamilies consistsconsist of the following products, with most recent version and release dates where known:
* Open XL C/C++ for AIXz/OS (Version 161.1, DecemberMay 20182022)
* Open XL C/C++ for LinuxAIX on Power for big-endian distributions (Version 1317.1.1, JuneNov 20142022)
* Open XL C/C++ for Linux on Power (Version 17.1.1, August 2022)
* XL C for AIX (Version 13.1.3, December 2015)
* XL C/C++ for Linux on Power2.4.1 for little-endianz/OS distributions2.4 (Version 16.1.1, NovemberDec 20182019)
* XL C/C++ for Linux on Power for big-endian distributions (Version 13.1, June 2014)
* z/OS XL C/C++ (Version 2.4, Sep 2019)
* z/OS XL C/C++ (Version 2.3, September 2017)
* z/OS XL C/C++ (Version 2.2, September 2015)
* XL C/C++ for z/VM (Version 1.3, December 2011)
* XL C/C++ for Linux on z Systems (Version 1.12, January 20152016)
* XL C/C++ for Blue Gene/Q (Version 12.1, June 2012)
* XL C/C++ Advanced Edition for Blue Gene (Version 9.0, September 2007, withdrawn August 2009)
Line 66 ⟶ 74:
 
==References==
{{reflistReflist}}
 
==External links==
* [https://www.ibm.com/supportdocs/knowledgecenteren/SSXVZZ_16openxl-c-and-cpp-aix/17.1.10/ Product documentation: Open XL C/C++ for Linux,AIX V1617.1.10]
* [https://www.ibm.com/supportdocs/knowledgecenteren/SSGH3R_16xl-c-and-cpp-linux/16.1.01/ Product documentation: XL C/C++ for AIX,Linux V1616.1.1]
* [https://www.ibm.com/supportdocs/knowledgecenteren/SSGH2K_13xl-c-and-cpp-aix/16.1.3/ Product documentation: XL C/C++ for AIX, V1316.1.3]
* [https://www.ibm.com/supportdocs/knowledgecenteren/SSLTBW_2.4.0xl-c-aix/com13.ibm1.zos.v2r4.cbc3/cbc.htm Product documentation: z/OS XL C/C++, V2for AIX 13.1.43]
* [https://www.ibm.com/supportdocs/knowledgecenteren/SSLTBW_2.3.0/com.ibm.open-xl-c-cpp-zos.v2r3.cbc/cbc1.htm1 Product documentation: z/OSOpen XL C/C++, V2for z/OS 1.31]
* [https://www.ibm.com/supportdocs/knowledgecenteren/zos/SSLTBW_2.2.4.0/com.ibm.?topic=zos.v2r2.cbc/cbc.htm-xl-cc Product documentation: z/OS XL C/C++, V2.2.4]
* [https://www.ibm.com/products/xl-cpp-compiler-zos Product page: z/OS XL C/C++]
* [https://community.ibm.com/community/user/power/communities/community-home?communitykey=5d23d564-1e3e-47e6-8e47-71b8b65eedfd&tab=groupdetails Community: IBM XL C, /C++, and Fortran Compilerscompilers foron Power® serverscommunity]
* [https://community.ibm.com/community/user/ibmz-and-linuxone/groups/topic-home?CommunityKey=5805da79-8284-4015-97fb-5a19f6480452 Community: IBM C/C++ Compilerscompilers for IBM Z - Community & Forum]
 
{{IBM}}
 
{{DEFAULTSORT:IBM XL C C++ Compilers}}