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