1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

Eliminate the TopLevelManagerType enum; instead, just make

PMTopLevelManager's constructor take a PMDataManager *, which already
provides the needed abstraction support.

llvm-svn: 111189
This commit is contained in:
Dan Gohman 2010-08-16 21:38:42 +00:00
parent 515b81a494
commit 05fbd723d5
2 changed files with 7 additions and 22 deletions

View File

@ -98,13 +98,6 @@ namespace llvm {
class Timer;
class PMDataManager;
/// FunctionPassManager and PassManager, two top level managers, serve
/// as the public interface of pass manager infrastructure.
enum TopLevelManagerType {
TLM_Function, // FunctionPassManager
TLM_Pass // PassManager
};
// enums for debugging strings
enum PassDebuggingString {
EXECUTION_MSG, // "Executing Pass '"
@ -199,7 +192,7 @@ public:
/// Find analysis usage information for the pass P.
AnalysisUsage *findAnalysisUsage(Pass *P);
explicit PMTopLevelManager(enum TopLevelManagerType t);
explicit PMTopLevelManager(PMDataManager *PMDM);
virtual ~PMTopLevelManager();
/// Add immutable pass and initialize it.

View File

@ -226,7 +226,7 @@ public:
static char ID;
explicit FunctionPassManagerImpl(int Depth) :
Pass(PT_PassManager, ID), PMDataManager(Depth),
PMTopLevelManager(TLM_Function), wasRun(false) { }
PMTopLevelManager(new FPPassManager(1)), wasRun(false) {}
/// add - Add a pass to the queue of passes to run. This passes ownership of
/// the Pass to the PassManager. When the PassManager is destroyed, the pass
@ -386,7 +386,7 @@ public:
static char ID;
explicit PassManagerImpl(int Depth) :
Pass(PT_PassManager, ID), PMDataManager(Depth),
PMTopLevelManager(TLM_Pass) { }
PMTopLevelManager(new MPPassManager(1)) {}
/// add - Add a pass to the queue of passes to run. This passes ownership of
/// the Pass to the PassManager. When the PassManager is destroyed, the pass
@ -490,18 +490,10 @@ static TimingInfo *TheTimeInfo;
// PMTopLevelManager implementation
/// Initialize top level manager. Create first pass manager.
PMTopLevelManager::PMTopLevelManager(enum TopLevelManagerType t) {
if (t == TLM_Pass) {
MPPassManager *MPP = new MPPassManager(1);
MPP->setTopLevelManager(this);
addPassManager(MPP);
activeStack.push(MPP);
} else if (t == TLM_Function) {
FPPassManager *FPP = new FPPassManager(1);
FPP->setTopLevelManager(this);
addPassManager(FPP);
activeStack.push(FPP);
}
PMTopLevelManager::PMTopLevelManager(PMDataManager *PMDM) {
PMDM->setTopLevelManager(this);
addPassManager(PMDM);
activeStack.push(PMDM);
}
/// Set pass P as the last user of the given analysis passes.