Further reading
The LLVM website features a list of most of the middle-end passes at https://llvm.org/docs/Passes.html with a short description of what they do. This is slightly more verbose than the help message from opt. You can look at that list to get a better idea of what is available, then use the techniques described in this chapter to add the desired classes to your pass pipeline.