shruti padmanabha
2014-May-18 22:54 UTC
[LLVMdev] Associate IR instruction with corresponding assembly
Hi, Thanks for the pointer. I am unfortunately running into llc problems with this pass. I did *opt -debug-ir hello.bc -o hello.deb.bc* *llc -march=arm -debug -O0 hello.deb.bc -o hello.deb.s* This is aborting with the error: llc: llvm-3.4/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1614: void llvm::DwarfDebug::beginFunction(const llvm::MachineFunction*): Assertion `TheCU && "Unable to find compile unit!"' failed. I'm assuming this is because llc found some errors in the metadata that debug-ir prints out. How do I find and correct this? Thanks again, Shruti On Sat, May 17, 2014 at 5:57 PM, Tobias Grosser <tobias at grosser.es> wrote:> On 17/05/2014 23:05, shruti padmanabha wrote: > >> Hi, >> >> Is there a way to associate LLVM IR instructions with the instructions >> they >> finally generate in the assembly file emitted by LLC? I need to track the >> PC's corresponding to certain IR level instructions for ARM. >> One way to do this is to tag an IR instruction with a special flag and >> pass >> that flag onto the Machine IR created by LLC and then onto Machine Code. >> It >> would be helpful if I could get some pointers on how to do this. >> > > You may want to look at the -debug-ir pass, which creates METADATA to emit > debugging information that allows you to associate machine instructions > with IR instructions. This may or may not be what you want. > > Tobias >-- Shruti Padmanabha University of Michigan, Ann Arbor -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140518/36779ef6/attachment.html>
Tobias Grosser
2014-May-19 05:28 UTC
[LLVMdev] Associate IR instruction with corresponding assembly
On 19/05/2014 00:54, shruti padmanabha wrote:> Hi, > > Thanks for the pointer. I am unfortunately running into llc problems with > this pass. > I did > *opt -debug-ir hello.bc -o hello.deb.bc* > > *llc -march=arm -debug -O0 hello.deb.bc -o hello.deb.s* > > This is aborting with the error: llc: > llvm-3.4/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1614: void > llvm::DwarfDebug::beginFunction(const llvm::MachineFunction*): Assertion > `TheCU && "Unable to find compile unit!"' failed. > I'm assuming this is because llc found some errors in the metadata that > debug-ir prints out. How do I find and correct this?This is indeed surprising. I have no idea where this is coming from. Does this only happen on ARM? Can you attach the debug.bc file? Or even better, open a bug report for that? I included Daniel who committed the -debug-ir pass as well as Eric who has better knowledge about debug info than me. Cheers, Tobisa
shruti padmanabha
2014-May-19 05:55 UTC
[LLVMdev] Associate IR instruction with corresponding assembly
Hi, Compiling for both x86 and ARM with llc aborts after this pass. I have a simple helloworld.c program. I am attaching the .ll file created by: *clang -O3 -g -emit-llvm hello.c -c -o hello.bc* *llvm-dis hello.bc* Thanks again for the response! Shruti On Mon, May 19, 2014 at 1:28 AM, Tobias Grosser <tobias at grosser.es> wrote:> On 19/05/2014 00:54, shruti padmanabha wrote: > >> Hi, >> >> Thanks for the pointer. I am unfortunately running into llc problems with >> this pass. >> I did >> *opt -debug-ir hello.bc -o hello.deb.bc* >> >> *llc -march=arm -debug -O0 hello.deb.bc -o hello.deb.s* >> >> >> This is aborting with the error: llc: >> llvm-3.4/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1614: void >> llvm::DwarfDebug::beginFunction(const llvm::MachineFunction*): Assertion >> `TheCU && "Unable to find compile unit!"' failed. >> I'm assuming this is because llc found some errors in the metadata that >> debug-ir prints out. How do I find and correct this? >> > > This is indeed surprising. I have no idea where this is coming from. Does > this only happen on ARM? Can you attach the debug.bc file? Or even better, > open a bug report for that? > > I included Daniel who committed the -debug-ir pass as well as Eric who has > better knowledge about debug info than me. > > Cheers, > Tobisa >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140519/e5777305/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: hello.ll Type: application/octet-stream Size: 2467 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140519/e5777305/attachment.obj>
Eric Christopher
2014-May-19 15:01 UTC
[LLVMdev] Associate IR instruction with corresponding assembly
On Sun, May 18, 2014 at 10:28 PM, Tobias Grosser <tobias at grosser.es> wrote:> On 19/05/2014 00:54, shruti padmanabha wrote: >> >> Hi, >> >> Thanks for the pointer. I am unfortunately running into llc problems with >> this pass. >> I did >> *opt -debug-ir hello.bc -o hello.deb.bc* >> >> *llc -march=arm -debug -O0 hello.deb.bc -o hello.deb.s* >> >> >> This is aborting with the error: llc: >> llvm-3.4/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1614: void >> llvm::DwarfDebug::beginFunction(const llvm::MachineFunction*): Assertion >> `TheCU && "Unable to find compile unit!"' failed. >> I'm assuming this is because llc found some errors in the metadata that >> debug-ir prints out. How do I find and correct this? > > > This is indeed surprising. I have no idea where this is coming from. Does > this only happen on ARM? Can you attach the debug.bc file? Or even better, > open a bug report for that? > > I included Daniel who committed the -debug-ir pass as well as Eric who has > better knowledge about debug info than me. >Are you mixing versions of llc and opt? I.e. are they both built from the same version? -eric