Analysis contructors now no longer take AnalysisID's as their argument,

because there is a one-one mapping between classes and analyses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3106 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-07-26 19:19:16 +00:00
parent ce6ef112c4
commit aabff77165

View File

@ -20,7 +20,7 @@
// GCC 2.95.3 crashes if we do that, doh.
//
template<class AnalysisType>
static Pass *CreatePass(AnalysisID ID) { return new AnalysisType(ID); }
static Pass *CreatePass() { return new AnalysisType(); }
//===----------------------------------------------------------------------===//
// AnalysisID - This class is used to uniquely identify an analysis pass that
@ -29,10 +29,10 @@ static Pass *CreatePass(AnalysisID ID) { return new AnalysisType(ID); }
class AnalysisID {
static unsigned NextID; // Next ID # to deal out...
unsigned ID; // Unique ID for this analysis
Pass *(*Constructor)(AnalysisID); // Constructor to return the Analysis
Pass *(*Constructor)(); // Constructor to return the Analysis
AnalysisID(); // Disable default ctor
AnalysisID(unsigned id, Pass *(*Ct)(AnalysisID)) : ID(id), Constructor(Ct) {}
AnalysisID(unsigned id, Pass *(*Ct)()) : ID(id), Constructor(Ct) {}
public:
// create - the only way to define a new AnalysisID. This static method is
// supposed to be used to define the class static AnalysisID's that are
@ -56,7 +56,7 @@ public:
AnalysisID(const AnalysisID &AID, bool DependsOnlyOnCFG = false);
inline Pass *createPass() const { return Constructor(*this); }
inline Pass *createPass() const { return Constructor(); }
inline bool operator==(const AnalysisID &A) const {
return A.ID == ID;