121
|
1 //===- LoopInstSimplify.h - Loop Inst Simplify Pass -------------*- C++ -*-===//
|
120
|
2 //
|
147
|
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4 // See https://llvm.org/LICENSE.txt for license information.
|
|
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
120
|
6 //
|
|
7 //===----------------------------------------------------------------------===//
|
|
8 //
|
|
9 // This pass performs lightweight instruction simplification on loop bodies.
|
|
10 //
|
|
11 //===----------------------------------------------------------------------===//
|
|
12
|
|
13 #ifndef LLVM_TRANSFORMS_SCALAR_LOOPINSTSIMPLIFY_H
|
|
14 #define LLVM_TRANSFORMS_SCALAR_LOOPINSTSIMPLIFY_H
|
|
15
|
121
|
16 #include "llvm/Analysis/LoopAnalysisManager.h"
|
120
|
17 #include "llvm/IR/PassManager.h"
|
|
18
|
|
19 namespace llvm {
|
|
20
|
121
|
21 class Loop;
|
|
22 class LPMUpdater;
|
|
23
|
120
|
24 /// Performs Loop Inst Simplify Pass.
|
|
25 class LoopInstSimplifyPass : public PassInfoMixin<LoopInstSimplifyPass> {
|
|
26 public:
|
121
|
27 PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM,
|
|
28 LoopStandardAnalysisResults &AR, LPMUpdater &U);
|
120
|
29 };
|
121
|
30
|
120
|
31 } // end namespace llvm
|
|
32
|
|
33 #endif // LLVM_TRANSFORMS_SCALAR_LOOPINSTSIMPLIFY_H
|