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;
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.

View File

@ -22,7 +22,7 @@
#define LLVM_ANALYSIS_SCALAREVOLUTION_H
#include "llvm/Pass.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Instructions.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/ValueHandle.h"
#include "llvm/Support/Allocator.h"
@ -30,14 +30,19 @@
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/DenseMap.h"
#include <iosfwd>
#include <map>
namespace llvm {
class APInt;
class Constant;
class ConstantInt;
class DominatorTree;
class Type;
class ScalarEvolution;
class TargetData;
class LLVMContext;
class Loop;
class LoopInfo;
/// SCEV - This class represents an analyzed expression in the program. These
/// 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/Support/IRBuilder.h"
#include "llvm/Support/TargetFolder.h"
#include <set>
namespace llvm {
/// SCEVExpander - This class uses information about analyze scalars to

View File

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

View File

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

View File

@ -16,6 +16,7 @@
#include "llvm/Constants.h"
#include "llvm/Instructions.h"
#include "llvm/LLVMContext.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/Support/CFG.h"
@ -220,6 +221,12 @@ ConstantRange LoopVR::getRange(const SCEV *S, const SCEV *T, ScalarEvolution &SE
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; }
void LoopVR::print(std::ostream &os, const Module *) const {