diff --git a/llvm/include/llvm/Analysis/LoopAnalysisManager.h b/llvm/include/llvm/Analysis/LoopAnalysisManager.h index a825ada05df11..fc69cb03849c6 100644 --- a/llvm/include/llvm/Analysis/LoopAnalysisManager.h +++ b/llvm/include/llvm/Analysis/LoopAnalysisManager.h @@ -37,7 +37,6 @@ namespace llvm { class AAResults; class AssumptionCache; class BlockFrequencyInfo; -class BranchProbabilityInfo; class DominatorTree; class Function; class Loop; @@ -60,7 +59,6 @@ struct LoopStandardAnalysisResults { TargetLibraryInfo &TLI; TargetTransformInfo &TTI; BlockFrequencyInfo *BFI; - BranchProbabilityInfo *BPI; MemorySSA *MSSA; }; diff --git a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h index 79ccd63fd834c..750f9546625a2 100644 --- a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h +++ b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h @@ -405,11 +405,9 @@ class FunctionToLoopPassAdaptor explicit FunctionToLoopPassAdaptor(std::unique_ptr Pass, bool UseMemorySSA = false, bool UseBlockFrequencyInfo = false, - bool UseBranchProbabilityInfo = false, bool LoopNestMode = false) : Pass(std::move(Pass)), UseMemorySSA(UseMemorySSA), UseBlockFrequencyInfo(UseBlockFrequencyInfo), - UseBranchProbabilityInfo(UseBranchProbabilityInfo), LoopNestMode(LoopNestMode) { LoopCanonicalizationFPM.addPass(LoopSimplifyPass()); LoopCanonicalizationFPM.addPass(LCSSAPass()); @@ -432,7 +430,6 @@ class FunctionToLoopPassAdaptor bool UseMemorySSA = false; bool UseBlockFrequencyInfo = false; - bool UseBranchProbabilityInfo = false; const bool LoopNestMode; }; @@ -446,8 +443,7 @@ class FunctionToLoopPassAdaptor template inline FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor(LoopPassT &&Pass, bool UseMemorySSA = false, - bool UseBlockFrequencyInfo = false, - bool UseBranchProbabilityInfo = false) { + bool UseBlockFrequencyInfo = false) { if constexpr (is_detected::value) { using PassModelT = detail::PassModel( new PassModelT(std::forward(Pass))), - UseMemorySSA, UseBlockFrequencyInfo, UseBranchProbabilityInfo, false); + UseMemorySSA, UseBlockFrequencyInfo, false); } else { LoopPassManager LPM; LPM.addPass(std::forward(Pass)); @@ -469,7 +465,7 @@ createFunctionToLoopPassAdaptor(LoopPassT &&Pass, bool UseMemorySSA = false, return FunctionToLoopPassAdaptor( std::unique_ptr( new PassModelT(std::move(LPM))), - UseMemorySSA, UseBlockFrequencyInfo, UseBranchProbabilityInfo, true); + UseMemorySSA, UseBlockFrequencyInfo, true); } } @@ -477,9 +473,9 @@ createFunctionToLoopPassAdaptor(LoopPassT &&Pass, bool UseMemorySSA = false, /// be in loop-nest mode if the pass manager contains only loop-nest passes. template <> inline FunctionToLoopPassAdaptor -createFunctionToLoopPassAdaptor( - LoopPassManager &&LPM, bool UseMemorySSA, bool UseBlockFrequencyInfo, - bool UseBranchProbabilityInfo) { +createFunctionToLoopPassAdaptor(LoopPassManager &&LPM, + bool UseMemorySSA, + bool UseBlockFrequencyInfo) { // Check if LPM contains any loop pass and if it does not, returns an adaptor // in loop-nest mode. using PassModelT = @@ -491,8 +487,7 @@ createFunctionToLoopPassAdaptor( return FunctionToLoopPassAdaptor( std::unique_ptr( new PassModelT(std::move(LPM))), - UseMemorySSA, UseBlockFrequencyInfo, UseBranchProbabilityInfo, - LoopNestMode); + UseMemorySSA, UseBlockFrequencyInfo, LoopNestMode); } /// Pass for printing a loop's contents as textual IR. diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index 8cf277657a54a..4a47dac66a097 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -2098,11 +2098,8 @@ Error PassBuilder::parseFunctionPass(FunctionPassManager &FPM, bool UseBFI = llvm::any_of(InnerPipeline, [](auto Pipeline) { return Pipeline.Name.contains("simple-loop-unswitch"); }); - bool UseBPI = llvm::any_of(InnerPipeline, [](auto Pipeline) { - return Pipeline.Name == "loop-predication"; - }); FPM.addPass(createFunctionToLoopPassAdaptor(std::move(LPM), UseMemorySSA, - UseBFI, UseBPI)); + UseBFI)); return Error::success(); } if (Name == "machine-function") { diff --git a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp index 4b26ce12a28db..32078b1720508 100644 --- a/llvm/lib/Transforms/Scalar/LoopPassManager.cpp +++ b/llvm/lib/Transforms/Scalar/LoopPassManager.cpp @@ -9,7 +9,6 @@ #include "llvm/Transforms/Scalar/LoopPassManager.h" #include "llvm/Analysis/AssumptionCache.h" #include "llvm/Analysis/BlockFrequencyInfo.h" -#include "llvm/Analysis/BranchProbabilityInfo.h" #include "llvm/Analysis/MemorySSA.h" #include "llvm/Analysis/ScalarEvolution.h" #include "llvm/Analysis/TargetLibraryInfo.h" @@ -223,10 +222,6 @@ PreservedAnalyses FunctionToLoopPassAdaptor::run(Function &F, BlockFrequencyInfo *BFI = UseBlockFrequencyInfo && F.hasProfileData() ? (&AM.getResult(F)) : nullptr; - BranchProbabilityInfo *BPI = - UseBranchProbabilityInfo && F.hasProfileData() - ? (&AM.getResult(F)) - : nullptr; LoopStandardAnalysisResults LAR = {AM.getResult(F), AM.getResult(F), AM.getResult(F), @@ -235,7 +230,6 @@ PreservedAnalyses FunctionToLoopPassAdaptor::run(Function &F, AM.getResult(F), AM.getResult(F), BFI, - BPI, MSSA}; // Setup the loop analysis manager from its proxy. It is important that