aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/PassManagers.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/PassManagers.h')
-rw-r--r--include/llvm/PassManagers.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/llvm/PassManagers.h b/include/llvm/PassManagers.h
index 2d68239..6e4f946 100644
--- a/include/llvm/PassManagers.h
+++ b/include/llvm/PassManagers.h
@@ -88,7 +88,12 @@
// MPPassManagers.
//===----------------------------------------------------------------------===//
+#include "llvm/Support/PrettyStackTrace.h"
+
namespace llvm {
+ class Pass;
+ class Value;
+ class Module;
/// FunctionPassManager and PassManager, two top level managers, serve
/// as the public interface of pass manager infrastructure.
@@ -109,6 +114,24 @@ enum PassDebuggingString {
ON_CG_MSG // "' on Call Graph ...\n'"
};
+/// PassManagerPrettyStackEntry - This is used
+class PassManagerPrettyStackEntry : public PrettyStackTraceEntry {
+ Pass *P;
+ Value *V;
+ Module *M;
+public:
+ PassManagerPrettyStackEntry(Pass *p)
+ : P(p) {} // When P is releaseMemory'd.
+ PassManagerPrettyStackEntry(Pass *p, Value &v)
+ : P(p), V(&v), M(0) {} // When P is run on V
+ PassManagerPrettyStackEntry(Pass *p, Module &m)
+ : P(p), V(0), M(&m) {}// When P is run on M
+
+ /// print - Emit information about this stack frame to OS.
+ virtual void print(raw_ostream &OS) const;
+};
+
+
//===----------------------------------------------------------------------===//
// PMStack
//