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

View File

@ -15,8 +15,16 @@
#ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATERIMPL_H #ifndef LLVM_TRANSFORMS_UTILS_SSAUPDATERIMPL_H
#define 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 { namespace llvm {
class CastInst;
class PHINode;
template<typename T> class SSAUpdaterTraits; template<typename T> class SSAUpdaterTraits;
template<typename UpdaterT> template<typename UpdaterT>

View File

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

View File

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