Forward-declare Loop and LoopInfo instead of #including LoopInfo.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75529 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2009-07-13 22:19:41 +00:00
parent fa82b6eba4
commit 03ee68a145
6 changed files with 18 additions and 9 deletions

View File

@ -36,11 +36,7 @@ public:
virtual void print(std::ostream &os, const Module *) const; virtual void print(std::ostream &os, const Module *) const;
void releaseMemory(); void releaseMemory();
void getAnalysisUsage(AnalysisUsage &AU) const { void getAnalysisUsage(AnalysisUsage &AU) const;
AU.addRequiredTransitive<LoopInfo>();
AU.addRequiredTransitive<ScalarEvolution>();
AU.setPreservesAll();
}
//===--------------------------------------------------------------------- //===---------------------------------------------------------------------
// Methods that are used to look up and update particular values. // Methods that are used to look up and update particular values.

View File

@ -22,7 +22,7 @@
#define LLVM_ANALYSIS_SCALAREVOLUTION_H #define LLVM_ANALYSIS_SCALAREVOLUTION_H
#include "llvm/Pass.h" #include "llvm/Pass.h"
#include "llvm/Analysis/LoopInfo.h" #include "llvm/Instructions.h"
#include "llvm/Support/DataTypes.h" #include "llvm/Support/DataTypes.h"
#include "llvm/Support/ValueHandle.h" #include "llvm/Support/ValueHandle.h"
#include "llvm/Support/Allocator.h" #include "llvm/Support/Allocator.h"
@ -30,14 +30,19 @@
#include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMap.h"
#include <iosfwd> #include <iosfwd>
#include <map>
namespace llvm { namespace llvm {
class APInt; class APInt;
class Constant;
class ConstantInt; class ConstantInt;
class DominatorTree;
class Type; class Type;
class ScalarEvolution; class ScalarEvolution;
class TargetData; class TargetData;
class LLVMContext; class LLVMContext;
class Loop;
class LoopInfo;
/// SCEV - This class represents an analyzed expression in the program. These /// SCEV - This class represents an analyzed expression in the program. These
/// are opaque objects that the client is not allowed to do much with /// are opaque objects that the client is not allowed to do much with

View File

@ -17,6 +17,7 @@
#include "llvm/Analysis/ScalarEvolutionExpressions.h" #include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Support/IRBuilder.h" #include "llvm/Support/IRBuilder.h"
#include "llvm/Support/TargetFolder.h" #include "llvm/Support/TargetFolder.h"
#include <set>
namespace llvm { namespace llvm {
/// SCEVExpander - This class uses information about analyze scalars to /// SCEVExpander - This class uses information about analyze scalars to

View File

@ -14,13 +14,13 @@
#ifndef LLVM_TRANSFORMS_UTILS_FUNCTION_H #ifndef LLVM_TRANSFORMS_UTILS_FUNCTION_H
#define LLVM_TRANSFORMS_UTILS_FUNCTION_H #define LLVM_TRANSFORMS_UTILS_FUNCTION_H
#include "llvm/Analysis/LoopInfo.h"
#include <vector> #include <vector>
namespace llvm { namespace llvm {
class BasicBlock; class BasicBlock;
class DominatorTree; class DominatorTree;
class Function; class Function;
class Loop;
/// ExtractCodeRegion - rip out a sequence of basic blocks into a new function /// ExtractCodeRegion - rip out a sequence of basic blocks into a new function
/// ///

View File

@ -16,10 +16,10 @@
#ifndef LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H #ifndef LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H
#define LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H #define LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H
#include "llvm/Analysis/LoopInfo.h"
namespace llvm { namespace llvm {
class Loop;
class LoopInfo;
class LPPassManager; class LPPassManager;
bool UnrollLoop(Loop *L, unsigned Count, LoopInfo* LI, LPPassManager* LPM); bool UnrollLoop(Loop *L, unsigned Count, LoopInfo* LI, LPPassManager* LPM);

View File

@ -16,6 +16,7 @@
#include "llvm/Constants.h" #include "llvm/Constants.h"
#include "llvm/Instructions.h" #include "llvm/Instructions.h"
#include "llvm/LLVMContext.h" #include "llvm/LLVMContext.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h" #include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Assembly/Writer.h" #include "llvm/Assembly/Writer.h"
#include "llvm/Support/CFG.h" #include "llvm/Support/CFG.h"
@ -220,6 +221,12 @@ ConstantRange LoopVR::getRange(const SCEV *S, const SCEV *T, ScalarEvolution &SE
return FullSet; return FullSet;
} }
void LoopVR::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequiredTransitive<LoopInfo>();
AU.addRequiredTransitive<ScalarEvolution>();
AU.setPreservesAll();
}
bool LoopVR::runOnFunction(Function &F) { Map.clear(); return false; } bool LoopVR::runOnFunction(Function &F) { Map.clear(); return false; }
void LoopVR::print(std::ostream &os, const Module *) const { void LoopVR::print(std::ostream &os, const Module *) const {