File indexing completed on 2026-05-10 08:44:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef LLVM_TRANSFORMS_SCALAR_LOOPROTATION_H
0014 #define LLVM_TRANSFORMS_SCALAR_LOOPROTATION_H
0015
0016 #include "llvm/Analysis/LoopAnalysisManager.h"
0017 #include "llvm/IR/PassManager.h"
0018
0019 namespace llvm {
0020 class LPMUpdater;
0021 class Loop;
0022
0023
0024 class LoopRotatePass : public PassInfoMixin<LoopRotatePass> {
0025 public:
0026 LoopRotatePass(bool EnableHeaderDuplication = true,
0027 bool PrepareForLTO = false);
0028 PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
0029 LoopStandardAnalysisResults &AR, LPMUpdater &U);
0030
0031 void printPipeline(raw_ostream &OS,
0032 function_ref<StringRef(StringRef)> MapClassName2PassName);
0033
0034 private:
0035 const bool EnableHeaderDuplication;
0036 const bool PrepareForLTO;
0037 };
0038 }
0039
0040 #endif