Hello, I need to know how I get the LLVM::IDScope object of an instruction. My program contains: call void (...)* @commit(), !dbg !16 !16 = metadata !{i32 16, i32 5, metadata !8, null} !8 = metadata !{i32 589835, metadata !4, i32 10, i32 1, metadata !2, i32 0} ; [ DW_TAG_lexical_block ] LLVM::Instruction.hasMetadata() is 0 I got LLVM::Scope for variables over DIGlobalVariable.getContext() and DIVariable.getContext() but how do I get it for instructions? Regards Christian Jacobs
On Jan 19, 2012, at 10:12 AM, Christian Jacobs wrote:> Hello, > I need to know how I get the LLVM::IDScope object of an instruction. > > My program contains: > call void (...)* @commit(), !dbg !16 > > !16 = metadata !{i32 16, i32 5, metadata !8, null} > > !8 = metadata !{i32 589835, metadata !4, i32 10, i32 1, metadata !2, i32 0} ; [ DW_TAG_lexical_block ] >!8 is DIScope here (actually it is DILexicalBlock, which is derived from DIScope). - Devang
Am 20.01.2012 um 18:12 schrieb Devang Patel:> > On Jan 19, 2012, at 10:12 AM, Christian Jacobs wrote: > >> Hello, >> I need to know how I get the LLVM::IDScope object of an instruction. >> >> My program contains: >> call void (...)* @commit(), !dbg !16 >> >> !16 = metadata !{i32 16, i32 5, metadata !8, null} >> >> !8 = metadata !{i32 589835, metadata !4, i32 10, i32 1, metadata !2, i32 0} ; [ DW_TAG_lexical_block ] >> > > !8 is DIScope here (actually it is DILexicalBlock, which is derived from DIScope).I know. I am writing an LLVM pass and I do not know how I get a hand on the DIScope object. Which method(s) of the LLVM C++ API do I have to call to get a pointer or reference (!8) to the LLVM::DIScope of an LLVM::Instruction? Christian
Reasonably Related Threads
- [LLVMdev] context/scope of instruction
- [LLVMdev] context/scope of instruction
- [LLVMdev] LLVM internal getDirectory() for LexicalBlock debug information returns filename?
- [LLVMdev] DW_TAG_lexical_block structure in debug information
- [LLVMdev] Debug Information for LLVM 2.6 and TOT