User Details
- User Since
- Feb 1 2018, 11:54 PM (268 w, 4 d)
Mon, Mar 13
Rebase.
Apply comments and rebase.
Apply review comments and rebase.
Rebase.
Rebase.
@dblaikie thank you for looking at this! Hope this will be the final and successful iteration of the patchset.
Apply comments & rebase.
Rebase.
Tue, Mar 7
Sun, Mar 5
Hello @MaskRay, thanks for the review! And sorry for the delay with response.
The patch is useful in a probably rare case, indeed. It reproduces with a statically linked application that does not use exceptions itself, but hooks the personality routine because of some indirect dependencies that are removed by GC. Unfortunately, we cannot share our sample, but we will try to find something meaningful in the public domain.
Note that GNU ld produces smaller binaries because it analyzes the liveness of sections/pieces more thoroughly.
Thu, Mar 2
Friendly ping.
Feb 23 2023
Apply review comments.
Feb 22 2023
@jmmartinez thank you for looking at this!
Feb 19 2023
Feb 18 2023
Feb 17 2023
Feb 15 2023
@simon_tatham thank you for looking at this!
@peter.smith thank you for your comments!
Make test checks more readable.
Jan 25 2023
@jmmartinez Just FYI, I'm going to resurrect/update the whole patchset related to D125693 in a week or two, and will appreciate any help in reviewing the patches.
Ping
Jan 17 2023
Rebase on ToT
Let's give this another chance.
Dec 18 2022
Dec 13 2022
Keep original test case and add another one.
Dec 12 2022
Rebase & ping
Dec 6 2022
Dec 2 2022
Fix lld test
Dec 1 2022
Nov 3 2022
Oct 31 2022
Thank you!
Apply review comments.
Aug 1 2022
Jul 25 2022
Fix misprint.
- Rebase on top of 'main'.
- Reuse DIsubprogram's retainedNodes to track function-local types, imports and static locals.
Rebase
Rebase
Tracking function-local entities per-scope is good from optimization point (we may remove DILexicalBlock if there are no instruction left in it), but it makes handling abstract trees in AsmPrinter difficult.
We want to create an abstract scope if it is a parent scope for any of tracked nodes (this is true for local variables/labels as well as for other local entities). Since there are no easy ways to find which DILexicalBlocks belong to a particular subprogram, I'm not sure this approach is profitable.
Jul 24 2022
Well, this isn't as good as I thought. We are skipping optimized scopes and entities belong to them iff the scope is concrete (either inline or out-of-line). But we never skip abstract scopes; instead we create LexicalScope's just before constructing an abstract tree (see DwarfDebug::ensureAbstractEntityIsCreated()) if there are some retained nodes in them (currently, local variables or labels).
Jul 21 2022
Jul 18 2022
Rebase
Jul 13 2022
Jul 11 2022
Jul 6 2022
Jul 5 2022
Ping?
Jun 29 2022
Ping
Make DwarfDebug::endModule() to skip function-local decls
CUs 'imports', 'globals' and 'enums' instead of asserting.
Jun 27 2022
Ping
Jun 21 2022
Rebase.
Jun 16 2022
Jun 14 2022
Rebased
Jun 13 2022
Tested the whole patchset with various combinations of
- opt levels (O0, O2, O3, ThinLTO, FullLTO),
- debug info options (-fdebug-types-section, -gline-tables-only, -fno-eliminate-unused-debug-types -gsplit-dwarf, -fsplit-dwarf-inlining),
- and some additional checks / asserts (like additional verification of abstract / concrete out-of-line tree to be sure local entities are not duplicated, do not go to the wrong tree)
on clang bootstrapping build. No issues so far (except PR55680, which caused not by this and related patches).
Ping
Jun 6 2022
Applied review comments.
Add two tests from D113741.
Fixed crash in DwarfCompileUnit in case of PR55680 (the issue itself wasn't fixed), add a test.
Add tests:
- llvm/test/DebugInfo/Generic/split-dwarf-local-import-fulllto.ll (temporary)
- llvm/test/DebugInfo/Generic/split-dwarf-local-import3.ll