From: Dan Gohman Date: Fri, 14 Mar 2008 18:14:29 +0000 (+0000) Subject: Move the PMStack class out of Pass.h and into PassManagers.h. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=d7a3541a059d8b2b17b67ea4e8d2bfaada6d4bdb;p=oota-llvm.git Move the PMStack class out of Pass.h and into PassManagers.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48367 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Analysis/LoopPass.h b/include/llvm/Analysis/LoopPass.h index 7ae7d3fc979..3b5f565f533 100644 --- a/include/llvm/Analysis/LoopPass.h +++ b/include/llvm/Analysis/LoopPass.h @@ -24,6 +24,7 @@ namespace llvm { class LPPassManager; class Function; +class PMStack; class LoopPass : public Pass { diff --git a/include/llvm/Pass.h b/include/llvm/Pass.h index 896839effc9..8243d2aa25b 100644 --- a/include/llvm/Pass.h +++ b/include/llvm/Pass.h @@ -32,7 +32,6 @@ #include "llvm/Support/DataTypes.h" #include "llvm/Support/Streams.h" #include -#include #include #include #include @@ -369,33 +368,6 @@ public: } }; -/// PMStack -/// Top level pass manager (see PassManager.cpp) maintains active Pass Managers -/// using PMStack. Each Pass implements assignPassManager() to connect itself -/// with appropriate manager. assignPassManager() walks PMStack to find -/// suitable manager. -/// -/// PMStack is just a wrapper around standard deque that overrides pop() and -/// push() methods. -class PMStack { -public: - typedef std::deque::reverse_iterator iterator; - iterator begin() { return S.rbegin(); } - iterator end() { return S.rend(); } - - void handleLastUserOverflow(); - - void pop(); - inline PMDataManager *top() { return S.back(); } - void push(PMDataManager *PM); - inline bool empty() { return S.empty(); } - - void dump(); -private: - std::deque S; -}; - - /// If the user specifies the -time-passes argument on an LLVM tool command line /// then the value of this boolean will be true, otherwise false. /// @brief This is the storage for the -time-passes option. diff --git a/include/llvm/PassManagers.h b/include/llvm/PassManagers.h index eaa6f442709..1047e70cb7e 100644 --- a/include/llvm/PassManagers.h +++ b/include/llvm/PassManagers.h @@ -13,6 +13,7 @@ #include "llvm/PassManager.h" #include "llvm/ADT/SmallVector.h" +#include //===----------------------------------------------------------------------===// // Overview: @@ -105,6 +106,36 @@ enum PassDebuggingString { ON_CG_MSG // "' on Call Graph ...\n'" }; +//===----------------------------------------------------------------------===// +// PMStack +// +/// PMStack +/// Top level pass managers (see PassManager.cpp) maintain active Pass Managers +/// using PMStack. Each Pass implements assignPassManager() to connect itself +/// with appropriate manager. assignPassManager() walks PMStack to find +/// suitable manager. +/// +/// PMStack is just a wrapper around standard deque that overrides pop() and +/// push() methods. +class PMStack { +public: + typedef std::deque::reverse_iterator iterator; + iterator begin() { return S.rbegin(); } + iterator end() { return S.rend(); } + + void handleLastUserOverflow(); + + void pop(); + inline PMDataManager *top() { return S.back(); } + void push(PMDataManager *PM); + inline bool empty() { return S.empty(); } + + void dump(); +private: + std::deque S; +}; + + //===----------------------------------------------------------------------===// // PMTopLevelManager //