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 22 namespace llvm { 23 24 /// Performs Loop Idiom Recognize Pass. 25 class LoopIdiomRecognizePass : public PassInfoMixin<LoopIdiomRecognizePass> { 26 public: 27 PreservedAnalyses run(Loop &L, AnalysisManager<Loop> &AM); 28 }; 29 } // end namespace llvm 30 31 #endif // LLVM_TRANSFORMS_SCALAR_LOOPIDIOMRECOGNIZE_H 32