For full conference details, see the website: http://llvm.org/devmtg/2019-10/
Back To Schedule
Wednesday, October 23 • 9:00am - 9:45am
Even Better C++ Performance and Productivity: Enhancing Clang to Support Just-in-Time Compilation of Templates

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Just-in-time (JIT) compilation can take advantage of information only known once an application starts running in order to produce very-high-performance code. LLVM is well known for supporting JIT compilation, and moreover, Clang, LLVM's best-in-class C++ frontend, enables the highly-optimized compilation of C++ code. Clang, however, uses purely an ahead-of-time compilation model, and so we leave on the table performance which might come from dynamic specialization.
In this talk, I'll describe ClangJIT, an enhancement to Clang, and an extension to the C++ language, which brings JIT-compilation capabilities to the C++ ecosystem. Critically, ClangJIT enables the dynamic, incremental creation of new template instantiations. This can provide important performance benefits, and in addition, can decrease overall application compile times. I'll describe how Clang was enhanced to support this feature - what I needed to do to turn Clang into an incremental C++ compilation library - and how LLVM's JIT infrastructure was leveraged. ClangJIT supports Clang's CUDA mode, and how that works will be described. Some application use cases will be highlighted and I'll discuss some future directions.

avatar for Hal Finkel

Hal Finkel

Argonne National Laboratory

Wednesday October 23, 2019 9:00am - 9:45am PDT
General Session (LL20ABC)