[Driver][Frontend] Introduce load-pass-plugin option

Allow dynamic loading of LLVM passes via `load-pass-plugin`
option passed to the Swift compiler driver.
This commit is contained in:
Antonio Frighetto
2024-11-07 17:25:24 +01:00
parent 113f11c2d1
commit 377c03fa7e
10 changed files with 119 additions and 18 deletions

View File

@@ -214,7 +214,10 @@ int swift_llvm_opt_main(ArrayRef<const char *> argv, void *MainAddr) {
Opts.OutputKind = IRGenOutputKind::LLVMAssemblyAfterOptimization;
// Then perform the optimizations.
performLLVMOptimizations(Opts, M.get(), TM.get(), &Out->os());
SourceManager SM;
DiagnosticEngine Diags(SM);
performLLVMOptimizations(Opts, Diags, nullptr, M.get(), TM.get(),
&Out->os());
} else {
std::string Pipeline = PassPipeline;
llvm::TargetLibraryInfoImpl TLII(ModuleTriple);