|
|
|||
File indexing completed on 2026-05-10 08:44:41
0001 //===- LoopIdiomRecognize.h - Loop Idiom Recognize Pass ---------*- C++ -*-===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 // 0009 // This pass implements an idiom recognizer that transforms simple loops into a 0010 // non-loop form. In cases that this kicks in, it can be a significant 0011 // performance win. 0012 // 0013 //===----------------------------------------------------------------------===// 0014 0015 #ifndef LLVM_TRANSFORMS_SCALAR_LOOPIDIOMRECOGNIZE_H 0016 #define LLVM_TRANSFORMS_SCALAR_LOOPIDIOMRECOGNIZE_H 0017 0018 #include "llvm/Analysis/LoopAnalysisManager.h" 0019 #include "llvm/IR/PassManager.h" 0020 0021 namespace llvm { 0022 0023 class Loop; 0024 class LPMUpdater; 0025 0026 /// Options to disable Loop Idiom Recognize, which can be shared with other 0027 /// passes. 0028 struct DisableLIRP { 0029 /// When true, the entire pass is disabled. 0030 static bool All; 0031 0032 /// When true, Memset is disabled. 0033 static bool Memset; 0034 0035 /// When true, Memcpy is disabled. 0036 static bool Memcpy; 0037 }; 0038 0039 /// Performs Loop Idiom Recognize Pass. 0040 class LoopIdiomRecognizePass : public PassInfoMixin<LoopIdiomRecognizePass> { 0041 public: 0042 PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM, 0043 LoopStandardAnalysisResults &AR, LPMUpdater &U); 0044 }; 0045 0046 } // end namespace llvm 0047 0048 #endif // LLVM_TRANSFORMS_SCALAR_LOOPIDIOMRECOGNIZE_H
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|