summaryrefslogtreecommitdiffstats
path: root/include/llvm/PassManagers.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/PassManagers.h')
-rw-r--r--include/llvm/PassManagers.h33
1 files changed, 21 insertions, 12 deletions
diff --git a/include/llvm/PassManagers.h b/include/llvm/PassManagers.h
index 1aa0d3a..5a8f555 100644
--- a/include/llvm/PassManagers.h
+++ b/include/llvm/PassManagers.h
@@ -91,9 +91,11 @@
#include "llvm/Support/PrettyStackTrace.h"
namespace llvm {
+ class Module;
class Pass;
+ class StringRef;
class Value;
- class Module;
+ class Timer;
/// FunctionPassManager and PassManager, two top level managers, serve
/// as the public interface of pass manager infrastructure.
@@ -121,7 +123,7 @@ class PassManagerPrettyStackEntry : public PrettyStackTraceEntry {
Value *V;
Module *M;
public:
- PassManagerPrettyStackEntry(Pass *p)
+ explicit PassManagerPrettyStackEntry(Pass *p)
: P(p), V(0), M(0) {} // When P is releaseMemory'd.
PassManagerPrettyStackEntry(Pass *p, Value &v)
: P(p), V(&v), M(0) {} // When P is run on V
@@ -278,14 +280,16 @@ public:
/// verifyPreservedAnalysis -- Verify analysis presreved by pass P.
void verifyPreservedAnalysis(Pass *P);
- /// verifyDomInfo -- Verify dominator information if it is available.
- void verifyDomInfo(Pass &P, Function &F);
-
/// Remove Analysis that is not preserved by the pass
void removeNotPreservedAnalysis(Pass *P);
- /// Remove dead passes
- void removeDeadPasses(Pass *P, const char *Msg, enum PassDebuggingString);
+ /// Remove dead passes used by P.
+ void removeDeadPasses(Pass *P, const StringRef &Msg,
+ enum PassDebuggingString);
+
+ /// Remove P.
+ void freePass(Pass *P, const StringRef &Msg,
+ enum PassDebuggingString);
/// Add pass P into the PassVector. Update
/// AvailableAnalysis appropriately if ProcessAnalysis is true.
@@ -340,7 +344,7 @@ public:
void dumpLastUses(Pass *P, unsigned Offset) const;
void dumpPassArguments() const;
void dumpPassInfo(Pass *P, enum PassDebuggingString S1,
- enum PassDebuggingString S2, const char *Msg);
+ enum PassDebuggingString S2, const StringRef &Msg);
void dumpRequiredSet(const Pass *P) const;
void dumpPreservedSet(const Pass *P) const;
@@ -378,8 +382,13 @@ protected:
// then PMT_Last active pass mangers.
std::map<AnalysisID, Pass *> *InheritedAnalysis[PMT_Last];
+
+ /// isPassDebuggingExecutionsOrMore - Return true if -debug-pass=Executions
+ /// or higher is specified.
+ bool isPassDebuggingExecutionsOrMore() const;
+
private:
- void dumpAnalysisUsage(const char *Msg, const Pass *P,
+ void dumpAnalysisUsage(const StringRef &Msg, const Pass *P,
const AnalysisUsage::VectorType &Set) const;
// Set of available Analysis. This information is used while scheduling
@@ -449,9 +458,9 @@ public:
}
};
-}
+extern Timer *StartPassTimer(Pass *);
+extern void StopPassTimer(Pass *, Timer *);
-extern void StartPassTimer(llvm::Pass *);
-extern void StopPassTimer(llvm::Pass *);
+}
#endif
OpenPOWER on IntegriCloud