XFabian wrote: Yes, you are right. It does not have to be a machine pass. I added a test file that uses the existing `goodbye` function pass to check that it reaches the pipeline https://github.com/llvm/llvm-project/pull/217727