I’d like to share an update on the status of the ClangIR upstreaming project and the future of the ClangIR incubator repository.
We had a meeting on January 23, 2026 to discuss a transition plan for the project to move the incubator to an archived state. We believe that enough of the functionality from the incubator has been upstreamed to the main LLVM repository that it should be possible to do most new development directly upstream.
Beginning immediately, we would like anyone who is developing new PRs for ClangIR to consider whether it would be possible to implement the same change directly in the upstream repository. Beginning February 20, we intend to consider the ClangIR incubator frozen for all new development that can be developed directly upstream.
The key pieces of functionality that are missing upstream are:
- Robust C++ cleanup and exception handling support. This is incomplete in the incubator also, but the upstream implementation is further behind. We are currently working on a redesign of this handling, with the new work being done directly upstream. (See [CIR][docs] C++ cleanup and exception handling design for CIR.)
- Calling convention and other ABI lowering. This doesn’t block most compilation, but it will impede interaction with code compiled with correct ABI handling. Work is underway to implement this in the upstream repository with a new design.
- Static analysis passes. The ClangIR incubator repository contains many CIR-specific static analysis passes, and we have not yet begun to upstream these.
- GPU and other offload device support. We are just beginning to upstream this support and recognize that this is a critical piece for many CIR users.
If you are currently using the ClangIR incubator repository and you depend on something that isn’t supported upstream and isn’t listed above, please let us know so that we can get support properly prioritized.