summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDaniel Malea <daniel.malea@intel.com>2013-05-08 20:44:14 +0000
committerDaniel Malea <daniel.malea@intel.com>2013-05-08 20:44:14 +0000
commit13ace6664fad8b4d0277d16690674f4e1f176642 (patch)
tree07e183914fcea6659f8e2d4fa527d109a2e703cb /include
parentd0fef32e5f3700c7de6dfc50a1a3815659b7d19e (diff)
downloadllvm-13ace6664fad8b4d0277d16690674f4e1f176642.tar.gz
llvm-13ace6664fad8b4d0277d16690674f4e1f176642.tar.bz2
llvm-13ace6664fad8b4d0277d16690674f4e1f176642.tar.xz
Add DebugIR pass -- emits IR file and replace source lines with IR lines in MD
- requires existing debug information to be present - fixes up file name and line number information in metadata - emits a "<orig_filename>-debug.ll" succinct IR file (without !dbg metadata or debug intrinsics) that can be read by a debugger - initialize pass in opt tool to enable the "-debug-ir" flag - lit tests to follow git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181467 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/DebugInfo.h3
-rw-r--r--include/llvm/InitializePasses.h1
-rw-r--r--include/llvm/Transforms/Instrumentation.h4
3 files changed, 8 insertions, 0 deletions
diff --git a/include/llvm/DebugInfo.h b/include/llvm/DebugInfo.h
index 1c7edc971b..5f92ca22ec 100644
--- a/include/llvm/DebugInfo.h
+++ b/include/llvm/DebugInfo.h
@@ -166,6 +166,9 @@ namespace llvm {
public:
explicit DIScope(const MDNode *N = 0) : DIDescriptor (N) {}
+ /// Set the filename by allocating a new string MDNode for
+ /// it and attaching it to the underlying node.
+ void setFilename(StringRef Name, LLVMContext &Context);
StringRef getFilename() const;
StringRef getDirectory() const;
};
diff --git a/include/llvm/InitializePasses.h b/include/llvm/InitializePasses.h
index 5b2cd603c3..072c2e4895 100644
--- a/include/llvm/InitializePasses.h
+++ b/include/llvm/InitializePasses.h
@@ -100,6 +100,7 @@ void initializeDAEPass(PassRegistry&);
void initializeDAHPass(PassRegistry&);
void initializeDCEPass(PassRegistry&);
void initializeDSEPass(PassRegistry&);
+void initializeDebugIRPass(PassRegistry&);
void initializeDeadInstEliminationPass(PassRegistry&);
void initializeDeadMachineInstructionElimPass(PassRegistry&);
void initializeDependenceAnalysisPass(PassRegistry&);
diff --git a/include/llvm/Transforms/Instrumentation.h b/include/llvm/Transforms/Instrumentation.h
index 4aae200dd0..142b40f1ea 100644
--- a/include/llvm/Transforms/Instrumentation.h
+++ b/include/llvm/Transforms/Instrumentation.h
@@ -78,6 +78,10 @@ FunctionPass *createThreadSanitizerPass(StringRef BlacklistFile = StringRef());
// checking on loads, stores, and other memory intrinsics.
FunctionPass *createBoundsCheckingPass();
+/// createDebugIRPass - Create and return a pass that modifies a module's
+/// debug metadata to point back to IR instead of the original source file
+ModulePass *createDebugIRPass(StringRef FilenamePostfix);
+
} // End llvm namespace
#endif