#include "llvm/Pass.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Support/ConstantRange.h"
-#include <iosfwd>
#include <map>
namespace llvm {
LoopVR() : FunctionPass(&ID) {}
bool runOnFunction(Function &F);
- virtual void print(std::ostream &os, const Module *) const;
+ virtual void print(raw_ostream &os, const Module *) const;
void releaseMemory();
- void getAnalysisUsage(AnalysisUsage &AU) const {
- AU.addRequiredTransitive<LoopInfo>();
- AU.addRequiredTransitive<ScalarEvolution>();
- AU.setPreservesAll();
- }
+ void getAnalysisUsage(AnalysisUsage &AU) const;
//===---------------------------------------------------------------------
// Methods that are used to look up and update particular values.
private:
ConstantRange compute(Value *V);
- ConstantRange getRange(SCEVHandle S, Loop *L, ScalarEvolution &SE);
+ ConstantRange getRange(const SCEV *S, Loop *L, ScalarEvolution &SE);
- ConstantRange getRange(SCEVHandle S, SCEVHandle T, ScalarEvolution &SE);
+ ConstantRange getRange(const SCEV *S, const SCEV *T, ScalarEvolution &SE);
std::map<Value *, ConstantRange *> Map;
};