1 //===- LoopPredication.h - Guard based loop predication pass ----*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This pass tries to convert loop variant range checks to loop invariant by 11 // widening checks across loop iterations. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef LLVM_TRANSFORMS_SCALAR_LOOPPREDICATION_H 16 #define LLVM_TRANSFORMS_SCALAR_LOOPPREDICATION_H 17 18 #include "llvm/Analysis/LoopInfo.h" 19 #include "llvm/IR/PassManager.h" 20 #include "llvm/Transforms/Scalar/LoopPassManager.h" 21 22 namespace llvm { 23 24 /// Performs Loop Predication Pass. 25 class LoopPredicationPass : public PassInfoMixin<LoopPredicationPass> { 26 public: 27 PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM, 28 LoopStandardAnalysisResults &AR, LPMUpdater &U); 29 }; 30 } // end namespace llvm 31 32 #endif // LLVM_TRANSFORMS_SCALAR_LOOPPREDICATION_H 33