SANJAY SRIVALLABH SINGAPURAM via llvm-dev
2017-Mar-11 11:10 UTC
[llvm-dev] What does it mean by a "DICompileUnit missing from llvm.dgs.cu" ? | Where is the error ?
Hello, One of my Julia programs failed to execute with the following error, DICompileUnit not listed in llvm.dbg.cu !11 = distinct !DICompileUnit(language: DW_LANG_C89, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0,emissionKind: FullDebug, enums : !12) This was generated by verifyModule(*GPUModule,&(llvm::errs())From whithin PPCGCodeGeneration.cpp in Polly.>From <llvm_src>/test/Verifier/dbg-orphaned-compileunit.ll, I understandthat the debug info, of a compile unit, represented by !11 is missing from llvm.dbg.cu. What does this mean ? What could have caused this problem and how can I fix it ? Thank You, Sanjay -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170311/ad56a592/attachment.html>
David Blaikie via llvm-dev
2017-Mar-11 18:34 UTC
[llvm-dev] What does it mean by a "DICompileUnit missing from llvm.dgs.cu" ? | Where is the error ?
On Sat, Mar 11, 2017 at 3:10 AM SANJAY SRIVALLABH SINGAPURAM via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hello, > > One of my Julia programs failed to execute with the following error, > DICompileUnit not listed in llvm.dbg.cu > !11 = distinct !DICompileUnit(language: DW_LANG_C89, file: !3, producer: > "julia", isOptimized: true, runtimeVersion: 0,emissionKind: FullDebug, > enums: !12) > > This was generated by verifyModule(*GPUModule,&(llvm::errs())From whithin > PPCGCodeGeneration.cpp in Polly. > > From <llvm_src>/test/Verifier/dbg-orphaned-compileunit.ll, I understand > that the debug info, of a compile unit, represented by !11 is missing from > llvm.dbg.cu. > > What does this mean ? What could have caused this problem and how can I > fix it ? >At the LLVM level, it means that the CU debug info (DICompileUnit) wasn't listed in the list of all compile units (!llvm.dbg.cu global named metadata node) when it should be. Whatever produced the IR you are using likely has a bug and should be fixed to ensure the DICompileUnits created are included in the !llvm.dbg.cu global named metadata node (check Clang's behavior for comparison - usually a good reference point) This invariant was added a while ago (in LLVM time - I think it was in the last year or maybe two) by Adrian. - Dave> > Thank You, > Sanjay > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170311/fd8ed8b9/attachment-0001.html>
Tobias Grosser via llvm-dev
2017-Mar-12 08:40 UTC
[llvm-dev] What does it mean by a "DICompileUnit missing from llvm.dgs.cu" ? | Where is the error ?
On Sat, Mar 11, 2017, at 07:34 PM, David Blaikie via llvm-dev wrote:> On Sat, Mar 11, 2017 at 3:10 AM SANJAY SRIVALLABH SINGAPURAM via llvm-dev > < > llvm-dev at lists.llvm.org> wrote: > > > Hello, > > > > One of my Julia programs failed to execute with the following error, > > DICompileUnit not listed in llvm.dbg.cu > > !11 = distinct !DICompileUnit(language: DW_LANG_C89, file: !3, producer: > > "julia", isOptimized: true, runtimeVersion: 0,emissionKind: FullDebug, > > enums: !12) > > > > This was generated by verifyModule(*GPUModule,&(llvm::errs())From whithin > > PPCGCodeGeneration.cpp in Polly. > > > > From <llvm_src>/test/Verifier/dbg-orphaned-compileunit.ll, I understand > > that the debug info, of a compile unit, represented by !11 is missing from > > llvm.dbg.cu. > > > > What does this mean ? What could have caused this problem and how can I > > fix it ? > > > > At the LLVM level, it means that the CU debug info (DICompileUnit) wasn't > listed in the list of all compile units (!llvm.dbg.cu global named > metadata > node) when it should be. Whatever produced the IR you are using likely > has > a bug and should be fixed to ensure the DICompileUnits created are > included > in the !llvm.dbg.cu global named metadata node (check Clang's behavior > for > comparison - usually a good reference point) > > This invariant was added a while ago (in LLVM time - I think it was in > the > last year or maybe two) by Adrian.Right. It seems as if Julia is emitting invalid debug symbols. If you want to point them to this issue, you can probably call "verifyModule(*GPUModule))" after their initial IR is generated and already see the issue. If this is not the case, Polly might make a mistake when extracting the GPU module and might miss to transfer all debug information. Can you send me the output of the flag "-polly-dump-before"? Can you pass the dumped IR through 'opt' without seeing an error? In this case, the IR that enters Polly is still correct, but Polly might mis-transform it. An alternative fix would be to extract the debug-info stripping functionality in lib/Transforms/IPO/StripSymbols.cpp into its own function and call this on our Kernel-IR. It is unlikely that we want to debug GPU kernels, so we can just remove debug information for now. Best, Tobias> > - Dave > > > > > > Thank You, > > Sanjay > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev