Oh, one important thing I forgot to mention: that patch is for LLVM 16 only, and I developed it with a local build of their "release/16.x" branch on a FreeBSD box, and also tested with a released package for 16 on a Debian box. Further changes are already needed for their "main" branch (LLVM 17-to-be), so this won't quite be enough to shut seawasp up. At a glance, we will need to change from the "old pass manager" API that has recently been vaporised[1] (llvm-c/Transforms/PassManagerBuilder.h) to the new one[2][3] (llvm-c/Transforms/PassBuilder.h), which I suspect/hope will be as simple as changing llvmjit.c to call LLVMRunPasses() with a string describing the passes we want in "opt -passes" format, instead of our code that calls LLVMAddFunctionInlingPass() etc. But that'll be a topic for another day, and another thread.
[1] https://github.com/llvm/llvm-project/commit/0aac9a2875bad4f065367e4a6553fad78605f895 [2] https://llvm.org/docs/NewPassManager.html [3] https://reviews.llvm.org/D102136