projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
eliminate the old InstFormatName which is always "AsmString",
[oota-llvm.git]
/
include
/
llvm
/
PassManagers.h
diff --git
a/include/llvm/PassManagers.h
b/include/llvm/PassManagers.h
index 4ef73b878ae8b435773fe224b026370ab9d788eb..c4f409ef525ce7c5bf0fab4ac6ab388e680fd04b 100644
(file)
--- a/
include/llvm/PassManagers.h
+++ b/
include/llvm/PassManagers.h
@@
-98,13
+98,6
@@
namespace llvm {
class Timer;
class PMDataManager;
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 '"
// enums for debugging strings
enum PassDebuggingString {
EXECUTION_MSG, // "Executing Pass '"
@@
-113,6
+106,7
@@
enum PassDebuggingString {
ON_BASICBLOCK_MSG, // "' on BasicBlock '" + PassName + "'...\n"
ON_FUNCTION_MSG, // "' on Function '" + FunctionName + "'...\n"
ON_MODULE_MSG, // "' on Module '" + ModuleName + "'...\n"
ON_BASICBLOCK_MSG, // "' on BasicBlock '" + PassName + "'...\n"
ON_FUNCTION_MSG, // "' on Function '" + FunctionName + "'...\n"
ON_MODULE_MSG, // "' on Module '" + ModuleName + "'...\n"
+ ON_REGION_MSG, // " 'on Region ...\n'"
ON_LOOP_MSG, // " 'on Loop ...\n'"
ON_CG_MSG // "' on Call Graph ...\n'"
};
ON_LOOP_MSG, // " 'on Loop ...\n'"
ON_CG_MSG // "' on Call Graph ...\n'"
};
@@
-170,26
+164,31
@@
private:
/// PMTopLevelManager manages LastUser info and collects common APIs used by
/// top level pass managers.
class PMTopLevelManager {
/// PMTopLevelManager manages LastUser info and collects common APIs used by
/// top level pass managers.
class PMTopLevelManager {
-public:
+protected:
+ explicit PMTopLevelManager(PMDataManager *PMDM);
virtual unsigned getNumContainedManagers() const {
return (unsigned)PassManagers.size();
}
virtual unsigned getNumContainedManagers() const {
return (unsigned)PassManagers.size();
}
- /// Schedule pass P for execution. Make sure that passes required by
- /// P are run before P is run. Update analysis info maintained by
- /// the manager. Remove dead passes. This is a recursive function.
- void schedulePass(Pass *P);
+ void initializeAllAnalysisInfo();
+private:
/// This is implemented by top level pass manager and used by
/// schedulePass() to add analysis info passes that are not available.
virtual void addTopLevelPass(Pass *P) = 0;
/// This is implemented by top level pass manager and used by
/// schedulePass() to add analysis info passes that are not available.
virtual void addTopLevelPass(Pass *P) = 0;
+public:
+ /// Schedule pass P for execution. Make sure that passes required by
+ /// P are run before P is run. Update analysis info maintained by
+ /// the manager. Remove dead passes. This is a recursive function.
+ void schedulePass(Pass *P);
+
/// Set pass P as the last user of the given analysis passes.
/// Set pass P as the last user of the given analysis passes.
- void setLastUser(
SmallVector<Pass *, 12
> &AnalysisPasses, Pass *P);
+ void setLastUser(
const SmallVectorImpl<Pass *
> &AnalysisPasses, Pass *P);
/// Collect passes whose last user is P
/// Collect passes whose last user is P
- void collectLastUses(SmallVector
<Pass *, 12
> &LastUses, Pass *P);
+ void collectLastUses(SmallVector
Impl<Pass *
> &LastUses, Pass *P);
/// Find the pass that implements Analysis AID. Search immutable
/// passes and all pass managers. If desired pass is not found
/// Find the pass that implements Analysis AID. Search immutable
/// passes and all pass managers. If desired pass is not found
@@
-199,7
+198,6
@@
public:
/// Find analysis usage information for the pass P.
AnalysisUsage *findAnalysisUsage(Pass *P);
/// Find analysis usage information for the pass P.
AnalysisUsage *findAnalysisUsage(Pass *P);
- explicit PMTopLevelManager(enum TopLevelManagerType t);
virtual ~PMTopLevelManager();
/// Add immutable pass and initialize it.
virtual ~PMTopLevelManager();
/// Add immutable pass and initialize it.
@@
-208,7
+206,7
@@
public:
ImmutablePasses.push_back(P);
}
ImmutablePasses.push_back(P);
}
- inline SmallVector
<ImmutablePass *, 8
>& getImmutablePasses() {
+ inline SmallVector
Impl<ImmutablePass *
>& getImmutablePasses() {
return ImmutablePasses;
}
return ImmutablePasses;
}
@@
-226,8
+224,6
@@
public:
void dumpPasses() const;
void dumpArguments() const;
void dumpPasses() const;
void dumpArguments() const;
- void initializeAllAnalysisInfo();
-
// Active Pass Managers
PMStack activeStack;
// Active Pass Managers
PMStack activeStack;
@@
-318,8
+314,8
@@
public:
/// Populate RequiredPasses with analysis pass that are required by
/// pass P and are available. Populate ReqPassNotAvailable with analysis
/// pass that are required by pass P but are not available.
/// Populate RequiredPasses with analysis pass that are required by
/// pass P and are available. Populate ReqPassNotAvailable with analysis
/// pass that are required by pass P but are not available.
- void collectRequiredAnalysis(SmallVector
<Pass *, 8
> &RequiredPasses,
- SmallVector
<AnalysisID, 8
> &ReqPassNotAvailable,
+ void collectRequiredAnalysis(SmallVector
Impl<Pass *
> &RequiredPasses,
+ SmallVector
Impl<AnalysisID
> &ReqPassNotAvailable,
Pass *P);
/// All Required analyses should be available to the pass as it runs! Here
Pass *P);
/// All Required analyses should be available to the pass as it runs! Here