Using LLVM's legacy PM for optimization pipeline was deprecated in 13.0.0 and the relevant functionality was scheduled to be removed after 14.0.0 (got delayed). Clang dropped legacy PM support in D123609 (milestone: 15.0.0). I plan to remove instrumentation passes like gcov, PGO, and sanitizers (milestone: 15.0.0).
LLVM's legacy PM for optimization pipeline may be completely removed in 16.0.0. You may want to migrate to the new pass manager now. llvm-project
clang/lib/CodeGen/BackendUtil.cpp can serve as an example using the new pass manager.
It seems that Rust
compiler/rustc_codegen_llvm/src/back/write.rs has something like
passes.push(llvm::LLVMRustCreateAddressSanitizerFunctionPass(recover)); which will need adaption when LLVM removes