This is a RFC for discussions and ideas we have on IR and IR extensions. The existing system is not adequate for the ultimate goal of becoming a compiler toolkit. The IR was originally written to be just a convenience for lowering via LLVM. There was no consideration in many of the needs we have nowadays; such as transformation passes, caching, etc… The IR extensions (e.g. extension hooks that are globally mutable dict) were introduced at a time when there are no concept of passes. We will need to rethink the IR and how it can be extended.
Numba meetings that talked about this topic:
- Minutes_2022_11_22 · numba/numba Wiki · GitHub under “Extension hooks (analysis and lowering)”
- (this list will be expanded as more content is available)