you would need to build with debug info (-g) or similar (there are a few other options that enable the same source location info) to produce the debuglocs that will tell you about that
On Mon, Jul 11, 2016 at 9:40 PM, Shail Dave via cfe-users < cfe-users@lists.llvm.org> wrote: > Hi, > > I am working with LLVM 3.4 and want to obtain the line number information > of source file from IR. The IR is generated from simple c code with Clang. *I > want to obtain the line number in source c file from the line in IR body.* > > I tried this - > > 1. For Instruction BI, unsigned Line = Line = > BI->getDebugLoc().getLine(); > 2. For Loop L, std::cout << L->getStartLoc().getLine(); > > But, the result stored/printed is always 0. I don't know how to obtain > line number in the source from LLVM IR. > > My Source C file is - > #include <stdio.h> > > int main(){ > > int i; > > int inbuf[100]; > int outbuf[100]; > > for(i = 0; i < 100; ++i) > inbuf[i] ^= outbuf[i]; > > inbuf[1] += 402; > inbuf[6] += 107; > inbuf[97] += 231; > > for(i = 0; i < 100; ++i) > { > inbuf[i] += outbuf[i]; > } > > inbuf[47] += 312; > > //print-statements > for (i=0;i<100;i++) { > printf("inbuf[%d] = %d\n",i,inbuf[i]); }return 0; > } > > > *Command Used-* ~/llvm/build/Release+Asserts/bin/clang -O3 > -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -S -emit-llvm sample.c > -o sample.ll > > I have working pass which can detect and analyze the loops and > instructions. I am using it inside function - runOnLoop(Loop *L, > LPPassManager &LPM) > > I have also tried with -O0 and -fstandalone-debug option in the compile > line. But, it is still printing 0. > > The following is also not working out. > > if (MDNode *N = I->getMetadata("dbg")) { // Here I is an LLVM instruction > DILocation Loc(N); // DILocation is in DebugInfo.h > unsigned Line = Loc.getLineNumber(); > } > > It would be great if anybody can kindly help me for the same. Thanks! > > Best, > Shail > ᐧ > > _______________________________________________ > cfe-users mailing list > cfe-users@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users > >
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users