search for: retainednodes

Displaying 10 results from an estimated 10 matches for "retainednodes".

2020 Apr 30
2
Mapping a retained DILocalVariable back to its Function
...ced it. Knowing this, I can go from `DILocalVariable` to `MetadataAsValue`, grab the users, and end up at the corresponding instruction + function. In some cases, however, LLVM will optimize the IR such that those intrinsics are no longer called, and their corresponding metadata is stashed in the `RetainedNodes` of each `DISubprogram` instead. For example: ; Function Attrs: nounwind readnone uwtable define dso_local i32 @foobar(i32) local_unnamed_addr #0 !dbg !13 { ; no calls to llvm.dbg.* for the locals in this func } With the corresponding debug nodes: !13 = distinct !DISubprog...
2020 May 31
2
LLC crash while handling DEBUG info
...on 11.0.0 (https://github.com/llvm/llvm-project 9e0b52e2e68412a9a2add18697f4246e5e5ee5e3)"} !7 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !8 = !DISubroutineType(types: !9) !9 = !{null} !10 = !DILocation(line: 2, column: 1, scope: !7) ----------- Now, let's say, in the above IR file, I intentionally make debug info metadata, a kind of invalid, by removing the field 'unit` and by changing the field `spFlags` from `DISPFla...
2020 Sep 01
2
Filename's in DIBuileder
...ke !3 = !DIFile(filename: "/folk/tmp/test/test.cpp", directory: "/folk/tmp/test") !45 = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_test.cpp", scope: !3, file: !3, type: !46, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !4) !8 = !DIFile(filename: "test.cpp", directory: "/folk/tmp/test") !16 = !DISubprogram(name: "proc", linkageName: "_ZN4test4procEv", scope: !9, file: !8, line: 8, type: !12, scopeLine: 8, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0) Latest clang tr...
2020 May 31
2
LLC crash while handling DEBUG info
...t; > 9e0b52e2e68412a9a2add18697f4246e5e5ee5e3)"} > > !7 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", > > scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: > > DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, > > retainedNodes: !2) > > !8 = !DISubroutineType(types: !9) > > !9 = !{null} > > !10 = !DILocation(line: 2, column: 1, scope: !7) > > ----------- > > > > Now, let's say, in the above IR file, I intentionally make debug info > > metadata, a kind of invalid, by removing t...
2020 May 31
2
LLC crash while handling DEBUG info
...246e5e5ee5e3)"} > >> > !7 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", > >> > scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: > >> > DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, > >> > retainedNodes: !2) > >> > !8 = !DISubroutineType(types: !9) > >> > !9 = !{null} > >> > !10 = !DILocation(line: 2, column: 1, scope: !7) > >> > ----------- > >> > > >> > Now, let's say, in the above IR file, I intentionally make debug inf...
2020 Sep 01
4
Filename's in DIBuileder
...ke !3 = !DIFile(filename: "/folk/tmp/test/test.cpp", directory: "/folk/tmp/test") !45 = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_test.cpp", scope: !3, file: !3, type: !46, flags: DIFlagArtificial, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !4) !8 = !DIFile(filename: "test.cpp", directory: "/folk/tmp/test") !16 = !DISubprogram(name: "proc", linkageName: "_ZN4test4procEv", scope: !9, file: !8, line: 8, type: !12, scopeLine: 8, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0) Latest clang tr...
2020 Jun 01
2
LLC crash while handling DEBUG info
...gt;> > !7 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", > >> >> > scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: > >> >> > DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, > >> >> > retainedNodes: !2) > >> >> > !8 = !DISubroutineType(types: !9) > >> >> > !9 = !{null} > >> >> > !10 = !DILocation(line: 2, column: 1, scope: !7) > >> >> > ----------- > >> >> > > >> >> > Now, let's say...
2019 Jan 19
2
What does "preds" mean in a .ll file?
Hi, I see things like this. What does it mean? Is it documented somewhere? Thanks. ; preds = %for.body https://llvm.org/docs/LangRef.html ; <label>:91: ; preds = %88 %92 = load i8**, i8*** @glob_complete_word.matches, align 8, !dbg !99798 %93 = load i32, i32* @glob_complete_word.ind, align 4, !dbg !99799 %94 = sext i32 %93 to i64, !dbg !99798
2018 Dec 06
2
Source locations missing when using xray-account
Hi David, Sorry for taking a few days to reply. It's not easy for you to compile a Haskell file to see the problem as the debug information is still WIP. Below I prove the IR for a simple hello world program which you can feed into llc. https://gist.github.com/05296933e37e87533a51d493b46aa48d The `out.ir` file can be passed straight to `llc`. Can you see anything obviously wrong? Matt
2020 Jun 18
2
[DebugInfo] RFC: Introduce LLVM DI Checker utility
Hi Vedant, Thanks a lot for your comments! >It looks like a lot of the new infrastructure introduced here <https://github.com/djolertrk/llvm-di-checker/commit/9d26ac2557c584f6cf82ac5535fc47f8bd267a27> consists of logic copied from the debugify implementation. Why is introducing a new pair of passes better than extending the ones we have? The core infrastructure needed to track