[PATCH] D135267: [DWARF] Share across CUs only when order free
DianQK via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 5 23:19:56 PDT 2022
DianQK added a comment.
In D135267#3837570 <https://reviews.llvm.org/D135267#3837570>, @dblaikie wrote:
> Sorry, I'm not really understanding most of this - could you explain further what you mean by "successor" nodes and what "order free" means in this context?
Sorry I didn't explain clearly.
In this context,
!10 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Foo", scope: !4, file: !1, runtimeLang: DW_LANG_Swift)
!21 = distinct !DISubprogram(name: "hashValue.get", linkageName: "$hashValueGetInFoo2", scope: !10, file: !14, type: !15, spFlags: DISPFlagDefinition, unit: !0)
!21 is a "successor" node of !10 (link by scope).
"order" is similar in D135114 <https://reviews.llvm.org/D135114>.
In my test case, no matter how we swap the order, it fails. It always creates first in the "main CU" because of globals in CU.
After I created this Diff, I found this D135114 <https://reviews.llvm.org/D135114> and tried this patch, which seems to fix the problem nicely.
But in a larger project <https://github.com/DianQK/LTOGlobalMachineOutliner> I get warnings "no mapping for range" and "inconsistent range data".
Maybe we have some other work to do.
> Currently, I can confirm that if I disable sharing any DIType, everything works fine.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D135267/new/
https://reviews.llvm.org/D135267
More information about the llvm-commits
mailing list