LLVM 20.0.0git
|
This pass transforms loops that contain a conditional branch with induction variable. More...
#include "llvm/Transforms/Scalar/LoopBoundSplit.h"
Public Member Functions | |
PreservedAnalyses | run (Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U) |
Public Member Functions inherited from llvm::PassInfoMixin< LoopBoundSplitPass > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< LoopBoundSplitPass > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. | |
This pass transforms loops that contain a conditional branch with induction variable.
For example, it transforms left code to right code:
newbound = min(n, c)
while (iv < n) { while(iv < newbound) { A A if (iv < c) B B C C } if (iv != n) { while (iv < n) { A C } }
Definition at line 34 of file LoopBoundSplit.h.
PreservedAnalyses llvm::LoopBoundSplitPass::run | ( | Loop & | L, |
LoopAnalysisManager & | AM, | ||
LoopStandardAnalysisResults & | AR, | ||
LPMUpdater & | U | ||
) |
Definition at line 472 of file LoopBoundSplit.cpp.
References llvm::PreservedAnalyses::all(), assert(), llvm::dbgs(), llvm::LoopStandardAnalysisResults::DT, F, llvm::getLoopPassPreservedAnalyses(), llvm::LoopStandardAnalysisResults::LI, LLVM_DEBUG, llvm::LoopStandardAnalysisResults::SE, llvm::splitLoopBound(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().