aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Transforms/Scalar/InductionVars.h
blob: 196bb1f10a22bf1e1bb45092ac1d23e3a2d51a5a (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
//===-- 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"
class IntervalPartition;

struct InductionVariableCannonicalize : public FunctionPass {
  // doInductionVariableCannonicalize - Simplify induction variables in loops
  //
  static bool doIt(Function *F, IntervalPartition &IP);

  virtual bool runOnFunction(Function *F);

  // getAnalysisUsage - Declare that we need IntervalPartitions
  void getAnalysisUsage(AnalysisUsage &AU) const;
};

#endif