#define LLVM_ANALYSIS_SCALAREVOLUTION_H
#include "llvm/Pass.h"
+#include "llvm/Support/DataTypes.h"
#include "llvm/Support/Streams.h"
#include <set>
protected:
virtual ~SCEV();
public:
- SCEV(unsigned SCEVTy) : SCEVType(SCEVTy), RefCount(0) {}
+ explicit SCEV(unsigned SCEVTy) : SCEVType(SCEVTy), RefCount(0) {}
/// getNegativeSCEV - Return the SCEV object corresponding to -V.
///
class ScalarEvolution : public FunctionPass {
void *Impl; // ScalarEvolution uses the pimpl pattern
public:
- ScalarEvolution() : Impl(0) {}
+ static char ID; // Pass identification, replacement for typeid
+ ScalarEvolution() : FunctionPass((intptr_t)&ID), Impl(0) {}
/// getSCEV - Return a SCEV expression handle for the full generality of the
/// specified expression.
/// an analyzable loop-invariant iteration count.
bool hasLoopInvariantIterationCount(const Loop *L) const;
- /// deleteInstructionFromRecords - This method should be called by the
- /// client before it removes an instruction from the program, to make sure
+ /// deleteValueFromRecords - This method should be called by the
+ /// client before it removes a Value from the program, to make sure
/// that no dangling references are left around.
- void deleteInstructionFromRecords(Instruction *I) const;
+ void deleteValueFromRecords(Value *V) const;
virtual bool runOnFunction(Function &F);
virtual void releaseMemory();