From 464f4ef2bdb47a44ffa2c4208296da641db7358d Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 3 May 2011 16:18:28 +0000 Subject: [PATCH] Use llvm.dbg.cu named metadata to collect compile units. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130756 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/SourceLevelDebugging.html | 4 +++- lib/Analysis/DIBuilder.cpp | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html index c9ae0202def..4c4439fd59f 100644 --- a/docs/SourceLevelDebugging.html +++ b/docs/SourceLevelDebugging.html @@ -342,7 +342,9 @@ height="369"> that produced it.

Compile unit descriptors provide the root context for objects declared in a - specific compilation unit. File descriptors are defined using this context.

+ specific compilation unit. File descriptors are defined using this context. + These descriptors are collected by a named metadata + !llvm.dbg.cu. diff --git a/lib/Analysis/DIBuilder.cpp b/lib/Analysis/DIBuilder.cpp index dc98c9e67a8..1375e497ac6 100644 --- a/lib/Analysis/DIBuilder.cpp +++ b/lib/Analysis/DIBuilder.cpp @@ -51,6 +51,10 @@ void DIBuilder::createCompileUnit(unsigned Lang, StringRef Filename, ConstantInt::get(Type::getInt32Ty(VMContext), RunTimeVer) }; TheCU = DICompileUnit(MDNode::get(VMContext, Elts)); + + // Create a named metadata so that it is easier to find cu in a module. + NamedMDNode *NMD = M.getOrInsertNamedMetadata("llvm.dbg.cu"); + NMD->addOperand(TheCU); } /// createFile - Create a file descriptor to hold debugging information