[LLVMdev] How to get line number and source file name for IR?

hc2428 at columbia.edu hc2428 at columbia.edu
Mon May 18 19:21:40 PDT 2009


Dear Staff,
     I am asking this question: given a line of IR code in *.ll file,  
how can I know the corresponding line number and C/C++ source file  
name for this IR code?
     I am investigating some code patterns with LLVM IR, I need to  
know where this IR code come from (the line number in a source file  
name).
     An existing way is using -g option to compile my software, then I  
can get something as below:
call void @llvm.dbg.stoppoint(i32 9, i32 0, { }* bitcast  
(%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit17 to { }*))

     I know that the first argument is line number, and the third  
argument, the compile unit llvm.dbg.compile_unit17, is mapped to a  
source file. I can get the first line number very easily by  
"CallSite::arg_iterator" (and represent the first argument with class  
ConstantInt). However, I do not know how to represent the "{ }*  
bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit17 to {  
}*)" in LLVM source code.
     Moreover, do we have a better way to achieve the line number and  
source file name without the "-g" option?

Thanks,
Heming




More information about the llvm-dev mailing list