diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopVersioning.cpp | 56 |
1 files changed, 3 insertions, 53 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopVersioning.cpp b/llvm/lib/Transforms/Utils/LoopVersioning.cpp index 17e71cf5a6c4..78ebe75c121b 100644 --- a/llvm/lib/Transforms/Utils/LoopVersioning.cpp +++ b/llvm/lib/Transforms/Utils/LoopVersioning.cpp @@ -23,7 +23,6 @@ #include "llvm/IR/Dominators.h" #include "llvm/IR/MDBuilder.h" #include "llvm/IR/PassManager.h" -#include "llvm/InitializePasses.h" #include "llvm/Support/CommandLine.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h" #include "llvm/Transforms/Utils/Cloning.h" @@ -31,6 +30,8 @@ using namespace llvm; +#define DEBUG_TYPE "loop-versioning" + static cl::opt<bool> AnnotateNoAlias("loop-version-annotate-no-alias", cl::init(true), cl::Hidden, @@ -208,7 +209,7 @@ void LoopVersioning::prepareNoAliasMetadata() { // Finally, transform the above to actually map to scope list which is what // the metadata uses. - for (auto Pair : GroupToNonAliasingScopes) + for (const auto &Pair : GroupToNonAliasingScopes) GroupToNonAliasingScopeList[Pair.first] = MDNode::get(Context, Pair.second); } @@ -290,56 +291,6 @@ bool runImpl(LoopInfo *LI, LoopAccessInfoManager &LAIs, DominatorTree *DT, return Changed; } - -/// Also expose this is a pass. Currently this is only used for -/// unit-testing. It adds all memchecks necessary to remove all may-aliasing -/// array accesses from the loop. -class LoopVersioningLegacyPass : public FunctionPass { -public: - LoopVersioningLegacyPass() : FunctionPass(ID) { - initializeLoopVersioningLegacyPassPass(*PassRegistry::getPassRegistry()); - } - - bool runOnFunction(Function &F) override { - auto *LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); - auto &LAIs = getAnalysis<LoopAccessLegacyAnalysis>().getLAIs(); - auto *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); - auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE(); - - return runImpl(LI, LAIs, DT, SE); - } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired<LoopInfoWrapperPass>(); - AU.addPreserved<LoopInfoWrapperPass>(); - AU.addRequired<LoopAccessLegacyAnalysis>(); - AU.addRequired<DominatorTreeWrapperPass>(); - AU.addPreserved<DominatorTreeWrapperPass>(); - AU.addRequired<ScalarEvolutionWrapperPass>(); - } - - static char ID; -}; -} - -#define LVER_OPTION "loop-versioning" -#define DEBUG_TYPE LVER_OPTION - -char LoopVersioningLegacyPass::ID; -static const char LVer_name[] = "Loop Versioning"; - -INITIALIZE_PASS_BEGIN(LoopVersioningLegacyPass, LVER_OPTION, LVer_name, false, - false) -INITIALIZE_PASS_DEPENDENCY(LoopInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(LoopAccessLegacyAnalysis) -INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) -INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass) -INITIALIZE_PASS_END(LoopVersioningLegacyPass, LVER_OPTION, LVer_name, false, - false) - -namespace llvm { -FunctionPass *createLoopVersioningLegacyPass() { - return new LoopVersioningLegacyPass(); } PreservedAnalyses LoopVersioningPass::run(Function &F, @@ -353,4 +304,3 @@ PreservedAnalyses LoopVersioningPass::run(Function &F, return PreservedAnalyses::none(); return PreservedAnalyses::all(); } -} // namespace llvm |