Make headers standalone, move a virtual method out of line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144536 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2011-11-14 17:22:45 +00:00
parent 7c67d32a32
commit aa5354c3ba
4 changed files with 30 additions and 17 deletions

View File

@ -14,16 +14,18 @@
#ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATER_H
#define LLVM_TRANSFORMS_UTILS_SSAUPDATER_H
#include "llvm/ADT/StringRef.h"
namespace llvm {
class Value;
class BasicBlock;
class Use;
class PHINode;
class Instruction;
class LoadInst;
template<typename T> class SmallVectorImpl;
template<typename T> class SSAUpdaterTraits;
class DbgDeclareInst;
class DIBuilder;
class BumpPtrAllocator;
class PHINode;
class Type;
class Use;
class Value;
/// SSAUpdater - This class updates SSA form for a set of values defined in
/// multiple blocks. This is used when code duplication or another unstructured
@ -137,12 +139,7 @@ public:
/// passed into the run method). Clients should implement this with a more
/// efficient version if possible.
virtual bool isInstInList(Instruction *I,
const SmallVectorImpl<Instruction*> &Insts) const {
for (unsigned i = 0, e = Insts.size(); i != e; ++i)
if (Insts[i] == I)
return true;
return false;
}
const SmallVectorImpl<Instruction*> &Insts) const;
/// doExtraRewritesBeforeFinalDeletion - This hook is invoked after all the
/// stores are found and inserted as available values, but

View File

@ -15,8 +15,16 @@
#ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATERIMPL_H
#define LLVM_TRANSFORMS_UTILS_SSAUPDATERIMPL_H
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ValueHandle.h"
namespace llvm {
class CastInst;
class PHINode;
template<typename T> class SSAUpdaterTraits;
template<typename UpdaterT>

View File

@ -17,17 +17,18 @@
#define LLVM_TRANSFORMS_UTILS_SIMPLIFYINDVAR_H
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ValueHandle.h"
namespace llvm {
extern cl::opt<bool> DisableIVRewrite;
class Loop;
class LoopInfo;
class DominatorTree;
class ScalarEvolution;
class LPPassManager;
class CastInst;
class IVUsers;
class Loop;
class LPPassManager;
class PHINode;
class ScalarEvolution;
/// Interface for visiting interesting IV users that are recognized but not
/// simplified by this utility.

View File

@ -518,3 +518,10 @@ run(const SmallVectorImpl<Instruction*> &Insts) const {
User->eraseFromParent();
}
}
bool
LoadAndStorePromoter::isInstInList(Instruction *I,
const SmallVectorImpl<Instruction*> &Insts)
const {
return std::find(Insts.begin(), Insts.end(), I) != Insts.end();
}