This is needed for opaque pointers, which are enabled by default in LLVM 15.
This is a preparation for moving the Optimize function to the transform package.