forked from OSchip/llvm-project
				
			Tidy up PMStack. Add a bunch of consts, use std::vector instead of
std::deque, since this is a stack and only supports push/pop on one end, and remove an unimplemented declaration. llvm-svn: 110495
This commit is contained in:
		
							parent
							
								
									093b42fc7c
								
							
						
					
					
						commit
						404c58847e
					
				| 
						 | 
					@ -19,6 +19,7 @@
 | 
				
			||||||
#include "llvm/Pass.h"
 | 
					#include "llvm/Pass.h"
 | 
				
			||||||
#include "llvm/PassManagers.h"
 | 
					#include "llvm/PassManagers.h"
 | 
				
			||||||
#include "llvm/Function.h"
 | 
					#include "llvm/Function.h"
 | 
				
			||||||
 | 
					#include <deque>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace llvm {
 | 
					namespace llvm {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@
 | 
				
			||||||
#include "llvm/ADT/SmallVector.h"
 | 
					#include "llvm/ADT/SmallVector.h"
 | 
				
			||||||
#include "llvm/ADT/SmallPtrSet.h"
 | 
					#include "llvm/ADT/SmallPtrSet.h"
 | 
				
			||||||
#include "llvm/ADT/DenseMap.h"
 | 
					#include "llvm/ADT/DenseMap.h"
 | 
				
			||||||
#include <deque>
 | 
					#include <vector>
 | 
				
			||||||
#include <map>
 | 
					#include <map>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//===----------------------------------------------------------------------===//
 | 
					//===----------------------------------------------------------------------===//
 | 
				
			||||||
| 
						 | 
					@ -138,30 +138,28 @@ public:
 | 
				
			||||||
//===----------------------------------------------------------------------===//
 | 
					//===----------------------------------------------------------------------===//
 | 
				
			||||||
// PMStack
 | 
					// PMStack
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
/// PMStack
 | 
					/// PMStack - This class implements a stack data structure of PMDataManager
 | 
				
			||||||
 | 
					/// pointers.
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
/// Top level pass managers (see PassManager.cpp) maintain active Pass Managers 
 | 
					/// Top level pass managers (see PassManager.cpp) maintain active Pass Managers 
 | 
				
			||||||
/// using PMStack. Each Pass implements assignPassManager() to connect itself
 | 
					/// using PMStack. Each Pass implements assignPassManager() to connect itself
 | 
				
			||||||
/// with appropriate manager. assignPassManager() walks PMStack to find
 | 
					/// with appropriate manager. assignPassManager() walks PMStack to find
 | 
				
			||||||
/// suitable manager.
 | 
					/// suitable manager.
 | 
				
			||||||
///
 | 
					 | 
				
			||||||
/// PMStack is just a wrapper around standard deque that overrides pop() and
 | 
					 | 
				
			||||||
/// push() methods.
 | 
					 | 
				
			||||||
class PMStack {
 | 
					class PMStack {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  typedef std::deque<PMDataManager *>::reverse_iterator iterator;
 | 
					  typedef std::vector<PMDataManager *>::const_reverse_iterator iterator;
 | 
				
			||||||
  iterator begin() { return S.rbegin(); }
 | 
					  iterator begin() const { return S.rbegin(); }
 | 
				
			||||||
  iterator end() { return S.rend(); }
 | 
					  iterator end() const { return S.rend(); }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  void handleLastUserOverflow();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void pop();
 | 
					  void pop();
 | 
				
			||||||
  inline PMDataManager *top() { return S.back(); }
 | 
					  PMDataManager *top() const { return S.back(); }
 | 
				
			||||||
  void push(PMDataManager *PM);
 | 
					  void push(PMDataManager *PM);
 | 
				
			||||||
  inline bool empty() { return S.empty(); }
 | 
					  bool empty() const { return S.empty(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void dump() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void dump();
 | 
					 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  std::deque<PMDataManager *> S;
 | 
					  std::vector<PMDataManager *> S;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue