IBM C/C++ and Fortran compilers to adopt LLVM open source infrastructure

Hi all,
I’m very excited to be able to share this with everyone.

IBM announced this morning our intention to migrate our existing XL C/C++ and Fortran compilers to adopt the LLVM infrastructure. This will include both front-end (Clang) and back-end optimizations and code generation.

You can read the full announcement here:

If anyone has any questions/comments, I’m very happy to discuss further - either through email or on discord (my presence on IRC is very intermittent).

Kit Barton, Ph.D.
STSM, Technical lead for LLVM on Power and XL Compilers
IBM Toronto Lab, C2/705/8200/MKM
8200 Warden Ave, Markham, L6G 1C7
(905) 413-3452

Do you guys intend to upstream more work?

If so can you share a plan?


Hi Kit. I’m curious about the support for Clang on z/OS and, in particular, support for EBCDIC based source files and run-time interaction with the OS. Would you be able to describe what features IBM has added (or will be adding) along those lines? Will the z/OS enhanced ASCII functionality be supported? How about xlC’s enhanced ASCII support? Or #pragma filetag? Or #pragma convlit? Does IBM plan to contribute changes for these features back to the community?

This sounds like a positive direction!


(apologies if this message is received twice, my mail client is acting up).

Hi André,
We’ve been actively upstreaming work for the past several years, and have definitely increased that in the last year.
We do have work out of tree that we are working on cleaning up and posting for review, mostly for z/OS. We have not issued an RFC for this
yet, as we are currently focused on some internal deadlines, but hope to begin this soon.



Hi Tom,
To be perfectly honest with you, you’re getting into some of the details that we’re in the process of working out. In general, we intend to support compiling source files in different code pages and allow users to create ASCII and EBCDIC programs with string/char literals in multiple code pages.

To answer your specific questions, our current clang-based compilers do not support #pragma filetag or #pragma convlit. We do however have support for #pragma convert.

Our intention is to commit all of this upstream, subject of course to discussion and review with the community.

We’ll be sending an RFC to the dev lists when we are ready to start upstreaming our work. That RFC can include some more details about some of these features.



This is really exciting Kit, congratulations to you and your whole team! I know this has been a long journey,