diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -1425,7 +1425,11 @@ MPM.addPass(GlobalDCEPass()); MPM.addPass(ConstantMergePass()); - MPM.addPass(RelLookupTableConverterPass()); + // TODO: Relative look table converter pass caused an issue when full lto is + // enabled. See https://reviews.llvm.org/D94355 for more details. + // Until the issue fixed, disable this pass during pre-linking phase. + if (!LTOPreLink) + MPM.addPass(RelLookupTableConverterPass()); return MPM; } diff --git a/llvm/test/Other/new-pm-defaults.ll b/llvm/test/Other/new-pm-defaults.ll --- a/llvm/test/Other/new-pm-defaults.ll +++ b/llvm/test/Other/new-pm-defaults.ll @@ -260,8 +260,10 @@ ; CHECK-O-NEXT: Running pass: CGProfilePass ; CHECK-O-NEXT: Running pass: GlobalDCEPass ; CHECK-O-NEXT: Running pass: ConstantMergePass -; CHECK-O-NEXT: Running pass: RelLookupTableConverterPass -; CHECK-O-NEXT: Running analysis: TargetIRAnalysis +; CHECK-DEFAULT-NEXT: Running pass: RelLookupTableConverterPass +; CHECK-LTO-NOT: Running pass: RelLookupTableConverterPass +; CHECK-DEFAULT-NEXT: Running analysis: TargetIRAnalysis +; CHECK-LTO-NOT: Running analysis: TargetIRAnalysis ; CHECK-O-NEXT: Running pass: AnnotationRemarksPass on foo ; CHECK-LTO-NEXT: Running pass: CanonicalizeAliasesPass ; CHECK-LTO-NEXT: Running pass: NameAnonGlobalPass