1 //===- LoopIdiomRecognize.h - Loop Idiom Recognize 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 implements an idiom recognizer that transforms simple loops into a 11 // non-loop form. In cases that this kicks in, it can be a significant 12 // performance win. 13 // 14 //===----------------------------------------------------------------------===// 15 16 #ifndef LLVM_TRANSFORMS_SCALAR_LOOPIDIOMRECOGNIZE_H 17 #define LLVM_TRANSFORMS_SCALAR_LOOPIDIOMRECOGNIZE_H 18 19 #include "llvm/Analysis/LoopInfo.h" 20 #include "llvm/IR/PassManager.h" 21 #include "llvm/Transforms/Scalar/LoopPassManager.h" 22 23 namespace llvm { 24 25 /// Performs Loop Idiom Recognize Pass. 26 class LoopIdiomRecognizePass : public PassInfoMixin<LoopIdiomRecognizePass> { 27 public: 28 PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM, 29 LoopStandardAnalysisResults &AR, LPMUpdater &U); 30 }; 31 } // end namespace llvm 32 33 #endif // LLVM_TRANSFORMS_SCALAR_LOOPIDIOMRECOGNIZE_H 34