LoopSimplify.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. //===- LoopSimplify.h - Loop Canonicalization Pass ----------------------===//
  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. // See LoopSimplify.cpp for description of the pass.
  11. //
  12. //===----------------------------------------------------------------------===//
  13. #include "llvm/Transforms/Scalar.h"
  14. using namespace llvm;
  15. struct LoopSimplify : public FunctionPass {
  16. static char ID; // Pass identification, replacement for typeid
  17. LoopSimplify();
  18. // AA - If we have an alias analysis object to update, this is it, otherwise
  19. // this is null.
  20. AliasAnalysis* AA;
  21. DominatorTree* DT;
  22. LoopInfo* LI;
  23. ScalarEvolution* SE;
  24. AssumptionCache* AC;
  25. bool runOnFunction(llvm::Function& F) override;
  26. void getAnalysisUsage(llvm::AnalysisUsage& AU) const override;
  27. /// verifyAnalysis() - Verify LoopSimplifyForm's guarantees.
  28. void verifyAnalysis() const override;
  29. };