@@ -54,10 +54,6 @@ typedef struct LLVMOpaqueTargetMachine *LLVMTargetMachineRef;
5454
5555DEFINE_STDCXX_CONVERSION_FUNCTIONS (Pass, LLVMPassRef)
5656DEFINE_STDCXX_CONVERSION_FUNCTIONS(TargetMachine, LLVMTargetMachineRef)
57- #if LLVM_VERSION_LT(11, 0)
58- DEFINE_STDCXX_CONVERSION_FUNCTIONS (PassManagerBuilder,
59- LLVMPassManagerBuilderRef)
60- #endif
6157
6258extern "C" void LLVMInitializePasses() {
6359 PassRegistry &Registry = *PassRegistry::getPassRegistry ();
@@ -857,13 +853,8 @@ LLVMRustOptimizeWithNewPassManager(
857853 // PassBuilder does not create a pipeline.
858854 std::vector<std::function<void (ModulePassManager &, OptimizationLevel)>>
859855 PipelineStartEPCallbacks;
860- #if LLVM_VERSION_GE(11, 0)
861856 std::vector<std::function<void (ModulePassManager &, OptimizationLevel)>>
862857 OptimizerLastEPCallbacks;
863- #else
864- std::vector<std::function<void (FunctionPassManager &, OptimizationLevel)>>
865- OptimizerLastEPCallbacks;
866- #endif
867858
868859 if (VerifyIR) {
869860 PipelineStartEPCallbacks.push_back (
@@ -896,7 +887,6 @@ LLVMRustOptimizeWithNewPassManager(
896887 SanitizerOptions->SanitizeMemoryTrackOrigins ,
897888 SanitizerOptions->SanitizeMemoryRecover ,
898889 /* CompileKernel=*/ false );
899- #if LLVM_VERSION_GE(11, 0)
900890 OptimizerLastEPCallbacks.push_back (
901891 [Options](ModulePassManager &MPM, OptimizationLevel Level) {
902892#if LLVM_VERSION_GE(14, 0)
@@ -907,22 +897,9 @@ LLVMRustOptimizeWithNewPassManager(
907897 MPM.addPass (createModuleToFunctionPassAdaptor (MemorySanitizerPass (Options)));
908898 }
909899 );
910- #else
911- PipelineStartEPCallbacks.push_back (
912- [Options](ModulePassManager &MPM, OptimizationLevel Level) {
913- MPM.addPass (MemorySanitizerPass (Options));
914- }
915- );
916- OptimizerLastEPCallbacks.push_back (
917- [Options](FunctionPassManager &FPM, OptimizationLevel Level) {
918- FPM.addPass (MemorySanitizerPass (Options));
919- }
920- );
921- #endif
922900 }
923901
924902 if (SanitizerOptions->SanitizeThread ) {
925- #if LLVM_VERSION_GE(11, 0)
926903 OptimizerLastEPCallbacks.push_back (
927904 [](ModulePassManager &MPM, OptimizationLevel Level) {
928905#if LLVM_VERSION_GE(14, 0)
@@ -933,22 +910,9 @@ LLVMRustOptimizeWithNewPassManager(
933910 MPM.addPass (createModuleToFunctionPassAdaptor (ThreadSanitizerPass ()));
934911 }
935912 );
936- #else
937- PipelineStartEPCallbacks.push_back (
938- [](ModulePassManager &MPM, OptimizationLevel Level) {
939- MPM.addPass (ThreadSanitizerPass ());
940- }
941- );
942- OptimizerLastEPCallbacks.push_back (
943- [](FunctionPassManager &FPM, OptimizationLevel Level) {
944- FPM.addPass (ThreadSanitizerPass ());
945- }
946- );
947- #endif
948913 }
949914
950915 if (SanitizerOptions->SanitizeAddress ) {
951- #if LLVM_VERSION_GE(11, 0)
952916 OptimizerLastEPCallbacks.push_back (
953917 [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level) {
954918 MPM.addPass (RequireAnalysisPass<ASanGlobalsMetadataAnalysis, Module>());
@@ -967,29 +931,8 @@ LLVMRustOptimizeWithNewPassManager(
967931#endif
968932 }
969933 );
970- #else
971- PipelineStartEPCallbacks.push_back (
972- [&](ModulePassManager &MPM, OptimizationLevel Level) {
973- MPM.addPass (RequireAnalysisPass<ASanGlobalsMetadataAnalysis, Module>());
974- }
975- );
976- OptimizerLastEPCallbacks.push_back (
977- [SanitizerOptions](FunctionPassManager &FPM, OptimizationLevel Level) {
978- FPM.addPass (AddressSanitizerPass (
979- /* CompileKernel=*/ false , SanitizerOptions->SanitizeAddressRecover ,
980- /* UseAfterScope=*/ true ));
981- }
982- );
983- PipelineStartEPCallbacks.push_back (
984- [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level) {
985- MPM.addPass (ModuleAddressSanitizerPass (
986- /* CompileKernel=*/ false , SanitizerOptions->SanitizeAddressRecover ));
987- }
988- );
989- #endif
990934 }
991935 if (SanitizerOptions->SanitizeHWAddress ) {
992- #if LLVM_VERSION_GE(11, 0)
993936 OptimizerLastEPCallbacks.push_back (
994937 [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level) {
995938#if LLVM_VERSION_GE(14, 0)
@@ -1003,14 +946,6 @@ LLVMRustOptimizeWithNewPassManager(
1003946#endif
1004947 }
1005948 );
1006- #else
1007- PipelineStartEPCallbacks.push_back (
1008- [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level) {
1009- MPM.addPass (HWAddressSanitizerPass (
1010- /* CompileKernel=*/ false , SanitizerOptions->SanitizeHWAddressRecover ));
1011- }
1012- );
1013- #endif
1014949 }
1015950 }
1016951
@@ -1037,17 +972,8 @@ LLVMRustOptimizeWithNewPassManager(
1037972 for (const auto &C : PipelineStartEPCallbacks)
1038973 C (MPM, OptLevel);
1039974
1040- # if LLVM_VERSION_GE(11, 0)
1041975 for (const auto &C : OptimizerLastEPCallbacks)
1042976 C (MPM, OptLevel);
1043- # else
1044- if (!OptimizerLastEPCallbacks.empty ()) {
1045- FunctionPassManager FPM (DebugPassManager);
1046- for (const auto &C : OptimizerLastEPCallbacks)
1047- C (FPM, OptLevel);
1048- MPM.addPass (createModuleToFunctionPassAdaptor (std::move (FPM)));
1049- }
1050- # endif
1051977
1052978 MPM.addPass (AlwaysInlinerPass (EmitLifetimeMarkers));
1053979
@@ -1088,17 +1014,8 @@ LLVMRustOptimizeWithNewPassManager(
10881014#else
10891015 MPM = PB.buildThinLTOPreLinkDefaultPipeline (OptLevel, DebugPassManager);
10901016#endif
1091- #if LLVM_VERSION_GE(11, 0)
10921017 for (const auto &C : OptimizerLastEPCallbacks)
10931018 C (MPM, OptLevel);
1094- #else
1095- if (!OptimizerLastEPCallbacks.empty ()) {
1096- FunctionPassManager FPM (DebugPassManager);
1097- for (const auto &C : OptimizerLastEPCallbacks)
1098- C (FPM, OptLevel);
1099- MPM.addPass (createModuleToFunctionPassAdaptor (std::move (FPM)));
1100- }
1101- #endif
11021019 break ;
11031020 case LLVMRustOptStage::PreLinkFatLTO:
11041021#if LLVM_VERSION_GE(12, 0)
@@ -1552,7 +1469,6 @@ LLVMRustFreeThinLTOData(LLVMRustThinLTOData *Data) {
15521469// `ProcessThinLTOModule` function. Here they're split up into separate steps
15531470// so rustc can save off the intermediate bytecode between each step.
15541471
1555- #if LLVM_VERSION_GE(11, 0)
15561472static bool
15571473clearDSOLocalOnDeclarations (Module &Mod, TargetMachine &TM) {
15581474 // When linking an ELF shared object, dso_local should be dropped. We
@@ -1563,20 +1479,15 @@ clearDSOLocalOnDeclarations(Module &Mod, TargetMachine &TM) {
15631479 Mod.getPIELevel () == PIELevel::Default;
15641480 return ClearDSOLocalOnDeclarations;
15651481}
1566- #endif
15671482
15681483extern " C" bool
15691484LLVMRustPrepareThinLTORename (const LLVMRustThinLTOData *Data, LLVMModuleRef M,
15701485 LLVMTargetMachineRef TM) {
15711486 Module &Mod = *unwrap (M);
15721487 TargetMachine &Target = *unwrap (TM);
15731488
1574- #if LLVM_VERSION_GE(11, 0)
15751489 bool ClearDSOLocal = clearDSOLocalOnDeclarations (Mod, Target);
15761490 bool error = renameModuleForThinLTO (Mod, Data->Index , ClearDSOLocal);
1577- #else
1578- bool error = renameModuleForThinLTO (Mod, Data->Index );
1579- #endif
15801491
15811492 if (error) {
15821493 LLVMRustSetLastError (" renameModuleForThinLTO failed" );
@@ -1645,12 +1556,8 @@ LLVMRustPrepareThinLTOImport(const LLVMRustThinLTOData *Data, LLVMModuleRef M,
16451556
16461557 return MOrErr;
16471558 };
1648- #if LLVM_VERSION_GE(11, 0)
16491559 bool ClearDSOLocal = clearDSOLocalOnDeclarations (Mod, Target);
16501560 FunctionImporter Importer (Data->Index , Loader, ClearDSOLocal);
1651- #else
1652- FunctionImporter Importer (Data->Index , Loader);
1653- #endif
16541561 Expected<bool > Result = Importer.importFunctions (Mod, ImportList);
16551562 if (!Result) {
16561563 LLVMRustSetLastError (toString (Result.takeError ()).c_str ());
0 commit comments