Changes in directory llvm/include/llvm:
PassSupport.h updated: 1.32 -> 1.33 --- Log message: move 'cfgonly' pass tracking into PassInfo, instead of handling it with yet-another global data structure. --- Diffs of the changes: (+11 -3) PassSupport.h | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) Index: llvm/include/llvm/PassSupport.h diff -u llvm/include/llvm/PassSupport.h:1.32 llvm/include/llvm/PassSupport.h:1.33 --- llvm/include/llvm/PassSupport.h:1.32 Fri Dec 1 16:00:50 2006 +++ llvm/include/llvm/PassSupport.h Fri Dec 1 16:21:11 2006 @@ -38,6 +38,7 @@ const char *PassName; // Nice name for Pass const char *PassArgument; // Command Line argument to run this pass const std::type_info &TypeInfo; // type_info object for this Pass class + bool IsCFGOnlyPass; // Pass only looks at the CFG. bool IsAnalysisGroup; // True if an analysis group. std::vector<const PassInfo*> ItfImpl;// Interfaces implemented by this pass @@ -48,8 +49,8 @@ /// through RegisterPass. PassInfo(const char *name, const char *arg, const std::type_info &ti, Pass *(*normal)() = 0) - : PassName(name), PassArgument(arg), TypeInfo(ti), IsAnalysisGroup(false), - NormalCtor(normal) { + : PassName(name), PassArgument(arg), TypeInfo(ti), + IsCFGOnlyPass(false), IsAnalysisGroup(false), NormalCtor(normal) { } /// getPassName - Return the friendly name for the pass, never returns null @@ -73,6 +74,11 @@ bool isAnalysisGroup() const { return IsAnalysisGroup; } void SetIsAnalysisGroup() { IsAnalysisGroup = true; } + /// isCFGOnlyPass - return true if this pass only looks at the CFG for the + /// function. + bool isCFGOnlyPass() const { return IsCFGOnlyPass; } + void SetIsCFGOnlyPass() { IsCFGOnlyPass = true; } + /// getNormalCtor - Return a pointer to a function, that when called, creates /// an instance of the pass and returns it. This pointer may be null if there /// is no default constructor for the pass. @@ -159,7 +165,9 @@ /// setOnlyUsesCFG - Notice that this pass only depends on the CFG, so /// transformations that do not modify the CFG do not invalidate this pass. /// - void setOnlyUsesCFG(); + void setOnlyUsesCFG() { + PIObj.SetIsCFGOnlyPass(); + } }; template<typename PassName> _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits