aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Transforms/Scalar/InductionVars.h
blob: 7c79afaa594940acc59ca18846cef8dc2aecb7d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//===-- InductionVars.h - Induction Variable Recognition ---------*- C++ -*--=//
//
// This family of functions is useful for Induction variable recognition, 
// removal and optimizations.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_OPT_INDUCTION_VARS_H
#define LLVM_OPT_INDUCTION_VARS_H

#include "llvm/Pass.h"
namespace cfg { class IntervalPartition; }

struct InductionVariableCannonicalize : public MethodPass {
  // doInductionVariableCannonicalize - Simplify induction variables in loops
  //
  static bool doIt(Method *M, cfg::IntervalPartition &IP);

  virtual bool runOnMethod(Method *M);

  // getAnalysisUsageInfo - Declare that we need IntervalPartitions
  void getAnalysisUsageInfo(Pass::AnalysisSet &Required,
                            Pass::AnalysisSet &Destroyed,
                            Pass::AnalysisSet &Provided);
};

#endif