aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Transforms/Scalar/IndVarSimplify.h
blob: 902483eb8cb8e262f99bfeeb6ae3ede0ef4bd5ef (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
//===- llvm/Transforms/Scalar/IndVarSimplify.h - IV Eliminate ----*- C++ -*--=//
//
// InductionVariableSimplify - Transform induction variables in a program
//   to all use a single cannonical induction variable per loop.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_TRANSFORMS_SCALAR_INDVARSIMPLIFY_H
#define LLVM_TRANSFORMS_SCALAR_INDVARSIMPLIFY_H

#include "llvm/Pass.h"

namespace cfg { class LoopInfo; }

struct InductionVariableSimplify : public MethodPass {
  static bool doit(Method *M, cfg::LoopInfo &Loops);

  virtual bool runOnMethod(Method *M);

  virtual void getAnalysisUsageInfo(Pass::AnalysisSet &Required,
                                    Pass::AnalysisSet &Destroyed,
                                    Pass::AnalysisSet &Provided);
};

#endif