diff options
Diffstat (limited to 'include/llvm/Analysis/LoopVR.h')
-rw-r--r-- | include/llvm/Analysis/LoopVR.h | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/include/llvm/Analysis/LoopVR.h b/include/llvm/Analysis/LoopVR.h deleted file mode 100644 index 3b098e6..0000000 --- a/include/llvm/Analysis/LoopVR.h +++ /dev/null @@ -1,85 +0,0 @@ -//===- LoopVR.cpp - Value Range analysis driven by loop information -------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file defines the interface for the loop-driven value range pass. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_ANALYSIS_LOOPVR_H -#define LLVM_ANALYSIS_LOOPVR_H - -#include "llvm/Pass.h" -#include "llvm/Analysis/ScalarEvolution.h" -#include "llvm/Support/ConstantRange.h" -#include <map> - -namespace llvm { - -/// LoopVR - This class maintains a mapping of Values to ConstantRanges. -/// There are interfaces to look up and update ranges by value, and for -/// accessing all values with range information. -/// -class LoopVR : public FunctionPass { -public: - static char ID; // Class identification, replacement for typeinfo - - LoopVR() : FunctionPass(&ID) {} - - bool runOnFunction(Function &F); - virtual void print(raw_ostream &os, const Module *) const; - void releaseMemory(); - - void getAnalysisUsage(AnalysisUsage &AU) const; - - //===--------------------------------------------------------------------- - // Methods that are used to look up and update particular values. - - /// get - return the ConstantRange for a given Value of IntegerType. - ConstantRange get(Value *V); - - /// remove - remove a value from this analysis. - void remove(Value *V); - - /// narrow - improve our unterstanding of a Value by pointing out that it - /// must fall within ConstantRange. To replace a range, remove it first. - void narrow(Value *V, const ConstantRange &CR); - - //===--------------------------------------------------------------------- - // Methods that are used to iterate across all values with information. - - /// size - returns the number of Values with information - unsigned size() const { return Map.size(); } - - typedef std::map<Value *, ConstantRange *>::iterator iterator; - - /// begin - return an iterator to the first Value, ConstantRange pair - iterator begin() { return Map.begin(); } - - /// end - return an iterator one past the last Value, ConstantRange pair - iterator end() { return Map.end(); } - - /// getValue - return the Value referenced by an iterator - Value *getValue(iterator I) { return I->first; } - - /// getConstantRange - return the ConstantRange referenced by an iterator - ConstantRange getConstantRange(iterator I) { return *I->second; } - -private: - ConstantRange compute(Value *V); - - ConstantRange getRange(const SCEV *S, Loop *L, ScalarEvolution &SE); - - ConstantRange getRange(const SCEV *S, const SCEV *T, ScalarEvolution &SE); - - std::map<Value *, ConstantRange *> Map; -}; - -} // end llvm namespace - -#endif |