//===- LoopPass.h - LoopPass class ----------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines LoopPass class. All loop optimization // and transformation passes are derived from LoopPass. // //===----------------------------------------------------------------------===// #ifndef LLVM_ANALYSIS_LOOPPASS_H #define LLVM_ANALYSIS_LOOPPASS_H #include "llvm/IR/LegacyPassManagers.h" #include "llvm/Pass.h" #include <deque> namespace llvm { class Loop; class LoopInfo; class LPPassManager; class Function; class LoopPass : public Pass { … }; class LPPassManager : public FunctionPass, public PMDataManager { … }; // This pass is required by the LCSSA transformation. It is used inside // LPPassManager to check if current pass preserves LCSSA form, and if it does // pass manager calls lcssa verification for the current loop. struct LCSSAVerificationPass : public FunctionPass { … }; } // End llvm namespace #endif