IRGen: Switch pass managers based on LegacyPassManager IRGenOptions flag

This commit is contained in:
Arnold Schwaighofer
2022-07-13 08:08:23 -07:00
parent d24eff958c
commit 5c4c12a35d

View File

@@ -216,9 +216,10 @@ void setModuleFlags(IRGenModule &IGM) {
}
}
void swift::performLLVMOptimizations(const IRGenOptions &Opts,
llvm::Module *Module,
llvm::TargetMachine *TargetMachine) {
static void
performOptimizationsUsingLegacyPassManger(const IRGenOptions &Opts,
llvm::Module *Module,
llvm::TargetMachine *TargetMachine) {
// Set up a pipeline.
PassManagerBuilderWrapper PMBuilder(Opts);
@@ -389,6 +390,20 @@ void swift::performLLVMOptimizations(const IRGenOptions &Opts,
}
}
static void
performOptimizationsUsingNewPassManger(const IRGenOptions &Opts,
llvm::Module *Module,
llvm::TargetMachine *TargetMachine) {}
void swift::performLLVMOptimizations(const IRGenOptions &Opts,
llvm::Module *Module,
llvm::TargetMachine *TargetMachine) {
if (Opts.LegacyPassManager)
performOptimizationsUsingLegacyPassManger(Opts, Module, TargetMachine);
else
performOptimizationsUsingNewPassManger(Opts, Module, TargetMachine);
}
/// Computes the MD5 hash of the llvm \p Module including the compiler version
/// and options which influence the compilation.
static MD5::MD5Result getHashOfModule(const IRGenOptions &Opts,