|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
a5032b26 |
| 25-Mar-2022 |
David Blaikie <[email protected]> |
DebugInfo: Don't allow type units to references types in the CU
We could only do this in limited ways (since we emit the TUs first, we can't use ref_addr (& we can't use that in Split DWARF either)
DebugInfo: Don't allow type units to references types in the CU
We could only do this in limited ways (since we emit the TUs first, we can't use ref_addr (& we can't use that in Split DWARF either) - so we had to synthesize declarations into the TUs) and they were ambiguous in some cases (if the CU type had internal linkage, parsing the TU would require knowing which CU was referencing the TU to know which type the declaration was for, which seems not-ideal). So to avoid all that, let's just not reference types defined in the CU from TUs - instead moving the TU type into the CU (recursively).
This does increase debug info size (by pulling more things out of type units, into the compile unit) - about 2% of uncompressed dwp file size for clang -O0 -g -gsplit-dwarf. (5% .debug_info.dwo section size increase in the .dwp)
show more ...
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
ed98c1b3 |
| 09-Mar-2022 |
serge-sans-paille <[email protected]> |
Cleanup includes: DebugInfo & CodeGen
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D121332
|
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1 |
|
| #
3a8c5148 |
| 06-Feb-2022 |
Kazu Hirata <[email protected]> |
[CodeGen] Use = default (NFC)
Identified with modernize-use-equals-default
|
|
Revision tags: llvmorg-15-init |
|
| #
f69f2339 |
| 01-Feb-2022 |
David Blaikie <[email protected]> |
Revert "DebugInfo: Don't put types in type units if they reference internal linkage types"
This reverts commit ab4756338c5b2216d52d9152b2f7e65f233c4dac.
Breaks some cases, including this:
namespac
Revert "DebugInfo: Don't put types in type units if they reference internal linkage types"
This reverts commit ab4756338c5b2216d52d9152b2f7e65f233c4dac.
Breaks some cases, including this:
namespace { template <typename> struct a {}; } // namespace class c { c(); }; class b { b(); a<c> ax; }; b::b() {} c::c() {}
By producing a reference to a type unit for "c" but not producing the type unit.
show more ...
|
| #
ab475633 |
| 22-Jan-2022 |
David Blaikie <[email protected]> |
DebugInfo: Don't put types in type units if they reference internal linkage types
Doing this causes a declaration of the internal linkage (anonymous namespace) type to be emitted in the type unit, w
DebugInfo: Don't put types in type units if they reference internal linkage types
Doing this causes a declaration of the internal linkage (anonymous namespace) type to be emitted in the type unit, which would then be ambiguous as to which internal linkage definition it refers to (since the name is only valid internally).
It's possible these internal linkage types could be resolved relative to the unit the TU is referred to from - but that doesn't seem ideal, and there's no reason to put the type in a type unit since it can only be defined in one CU anyway (since otherwise it'd be an ODR violation) & so avoiding the type unit should be a smaller DWARF encoding anyway.
This also addresses an issue with Simplified Template Names where the template parameter could not be rebuilt from the declaration emitted into the TU (specifically for an enum non-type template parameter, where looking up the enumerators is necessary to rebuild the full template name)
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
b05df028 |
| 24-Dec-2021 |
David Blaikie <[email protected]> |
Revert "[DWARF] Fix PR51087 Extraneous enum record in DWARF with type units"
Causes invalid debug_gnu_pubnames (& I think non-gnu pubnames too) - visible as 0 values for the offset in gnu pubnames.
Revert "[DWARF] Fix PR51087 Extraneous enum record in DWARF with type units"
Causes invalid debug_gnu_pubnames (& I think non-gnu pubnames too) - visible as 0 values for the offset in gnu pubnames. More details on the original review in D115325.
This reverts commit 78d15a112cbd545fbb6e1aa37c221ef5aeffb3f2. This reverts commit 54586582d3e17c0bba76258d2930486a6dfaaf2a.
show more ...
|
| #
81378f7e |
| 23-Dec-2021 |
Kristina Bessonova <[email protected]> |
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches
Try to revert D113741 once again.
This also reverts 0ac75e82fff93a80ca401d3db3541e8d1d9098f
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches
Try to revert D113741 once again.
This also reverts 0ac75e82fff93a80ca401d3db3541e8d1d9098f9 (D114705) as it causes LLDB's lldb-api.lang/cpp/nsimport.TestCppNsImport.py test failure w/o D113741.
This reverts commit f9607d45f399e2afc39ec16222ea68b4e0831564.
Differential Revision: https://reviews.llvm.org/D116225
show more ...
|
| #
f9607d45 |
| 23-Dec-2021 |
Muhammad Omair Javaid <[email protected]> |
Revert "Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches"
This has broke following LLDB buildbots:
https://lab.llvm.org/buildbot/#/builders/
Revert "Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches"
This has broke following LLDB buildbots:
https://lab.llvm.org/buildbot/#/builders/17/builds/14984 https://lab.llvm.org/buildbot/#/builders/96/builds/15928 https://lab.llvm.org/buildbot/#/builders/68/builds/23600
This reverts commit 62a6b9e9ab3eb778111e90a34fee1e6a7c64db8a.
show more ...
|
| #
62a6b9e9 |
| 22-Dec-2021 |
David Blaikie <[email protected]> |
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches
This patch causes invalid DWARF to be generated in some cases of LTO + Split DWARF - follow-
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches
This patch causes invalid DWARF to be generated in some cases of LTO + Split DWARF - follow-up on the original review thread (D113741) contains further detail and test cases.
This reverts commit 75b622a7959479ccdb758ebe0973061b7b4fcacd. This reverts commit b6ccca217c35a95b8c2a337a7801b37cb23dbae2. This reverts commit 514d37441918dd04a2cd4f35c08959d7c3ff096d.
show more ...
|
| #
78d15a11 |
| 17-Dec-2021 |
OCHyams <[email protected]> |
[DWARF] Fix PR51087 Extraneous enum record in DWARF with type units
Fixes https://llvm.org/PR51087: Extraneous enum record in DWARF with type units.
As explained in PR51087 we sometimes get skeleto
[DWARF] Fix PR51087 Extraneous enum record in DWARF with type units
Fixes https://llvm.org/PR51087: Extraneous enum record in DWARF with type units.
As explained in PR51087 we sometimes get skeleton DIEs for enums in a Dwarf Compile Unit (CU) that are not referenced from any CU and are already described by a type unit.
Types for enums are emitted whether used or not, all together before most types in the CU. Mechanically, the extraneous CU records are generated because the enum types are generated with a call to CU->getOrCreateTypeDIE. This function will recursively get-or-create the parent DIE (in the CU) and the type unit for each. We don't need the CU-side DIEs if the type units are sucesfully emitted. Fix by only emitting the type units for enums if possible, falling back to a call to getOrCreateTypeDIE if not. Do the same for retained types.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D115325
show more ...
|
| #
75b622a7 |
| 04-Dec-2021 |
Kristina Bessonova <[email protected]> |
Reland [DwarfDebug] Support emitting function-local declaration for a lexical block
This is another attempt to make function-local declarations (like static variables, structs/classes and other) be
Reland [DwarfDebug] Support emitting function-local declaration for a lexical block
This is another attempt to make function-local declarations (like static variables, structs/classes and other) be correctly emitted within a lexical (bracketed) block.
Fixes https://bugs.llvm.org/show_bug.cgi?id=19238.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D113741
show more ...
|
| #
a9616048 |
| 04-Dec-2021 |
Kristina Bessonova <[email protected]> |
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block"
This reverts commits * ee691970a9a85470948ada623c31f0ab8773617c (D113741), * 79d3132998b2828be8f7d2ec411f91fb11b
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block"
This reverts commits * ee691970a9a85470948ada623c31f0ab8773617c (D113741), * 79d3132998b2828be8f7d2ec411f91fb11b3e01f (D114705)
due to lldb and dexter test failures.
show more ...
|
| #
ee691970 |
| 04-Dec-2021 |
Kristina Bessonova <[email protected]> |
[DwarfDebug] Support emitting function-local declaration for a lexical block
This is another attempt to make function-local declarations (like static variables, structs/classes and other) be correct
[DwarfDebug] Support emitting function-local declaration for a lexical block
This is another attempt to make function-local declarations (like static variables, structs/classes and other) be correctly emitted within a lexical (bracketed) block.
Fixes https://bugs.llvm.org/show_bug.cgi?id=19238.
Differential Revision: https://reviews.llvm.org/D113741
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
86b3100c |
| 16-Nov-2021 |
Aaron Puchert <[email protected]> |
[DebugInfo] Use DbgEntityKind in DbgEntity interface (NFC)
It was being used occasionally already, and using it on the constructor and getDbgEntityID has obvious type safety benefits.
Also use llvm
[DebugInfo] Use DbgEntityKind in DbgEntity interface (NFC)
It was being used occasionally already, and using it on the constructor and getDbgEntityID has obvious type safety benefits.
Also use llvm_unreachable in the switch as usual, but since only these two values are used in constructor calls I think it's still NFC.
Reviewed By: probinson
Differential Revision: https://reviews.llvm.org/D113862
show more ...
|
| #
6747d44b |
| 15-Nov-2021 |
Kyungwoo Lee <[email protected]> |
[DebugInfo] Fix end_sequence of debug_line in LTO Object
In a LTO build, the `end_sequence` in debug_line table for each compile unit (CU) points the end of text section which merged all CUs. The `e
[DebugInfo] Fix end_sequence of debug_line in LTO Object
In a LTO build, the `end_sequence` in debug_line table for each compile unit (CU) points the end of text section which merged all CUs. The `end_sequence` needs to point to the end of each CU's range. This bug often causes invalid `debug_line` table in the final `.dSYM` binary for MachO after running `dsymutil` which tries to compensate an out-of-range address of `end_sequence`. The fix is to sync the line table termination with the range operations that are already maintained in DwarfDebug. When CU or section changes, or nodebug functions appear or module is finished, the prior pending line table is terminated using the last range label. In the MC path where no range is tracked, the old logic is conservatively used to end the line table using the section end symbol.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D108261
show more ...
|
| #
f0d997c4 |
| 10-Nov-2021 |
Adrian Kuegel <[email protected]> |
Revert "[DebugInfo] Only create concrete DIEs of concrete functions"
This reverts commit f19471a24985a0cbc32b6548c8fce1d2514e8243. This leads to a crash. Still working on a reproducer to share.
|
| #
f19471a2 |
| 09-Nov-2021 |
Ellis Hoag <[email protected]> |
[DebugInfo] Only create concrete DIEs of concrete functions
At the begining of the module we can iterate through the functions to see which SPs should have concrete DIEs. Then when we need to refere
[DebugInfo] Only create concrete DIEs of concrete functions
At the begining of the module we can iterate through the functions to see which SPs should have concrete DIEs. Then when we need to reference a DIE for a SP we can decide if it's ok to create a concrete DIE or not.
Fixes * https://bugs.llvm.org/show_bug.cgi?id=52159 * https://bugs.llvm.org/show_bug.cgi?id=30637
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D112337
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
| #
829616c2 |
| 19-Aug-2021 |
Kyungwoo Lee <[email protected]> |
[NFC][DebugInfo] getDwarfCompileUnitID
This is a refactoring for the use in https://reviews.llvm.org/D108261
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D108271
|
| #
d4ce9e46 |
| 09-Aug-2021 |
Jeremy Morse <[email protected]> |
[DWARF] Revert sharing subprograms across CUs
This patch is a revert of e08f205f5c2c. In that patch, DW_TAG_subprograms were permitted to be referenced across CU boundaries, to improve stack trace c
[DWARF] Revert sharing subprograms across CUs
This patch is a revert of e08f205f5c2c. In that patch, DW_TAG_subprograms were permitted to be referenced across CU boundaries, to improve stack trace construction using call site information. Unfortunately, as documented in PR48790, the way that subprograms are "owned" by dwarf units is sufficiently complicated that subprograms end up in unexpected units, invalidating cross-unit references.
There's no obvious way to easily fix this, and several attempts have failed. Revert this to ensure correct DWARF is always emitted.
Three tests change in addition to the reversion, but they're all very light alterations.
Differential Revision: https://reviews.llvm.org/D107076
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
1d299252 |
| 03-May-2021 |
Paul Robinson <[email protected]> |
[DebuggerTuning] Move a comment to a more useful place.
The comment about how to make use of debugger tuning within DwarfDebug really belongs inside the DwarfDebug declaration, where it will be easi
[DebuggerTuning] Move a comment to a more useful place.
The comment about how to make use of debugger tuning within DwarfDebug really belongs inside the DwarfDebug declaration, where it will be easier to find.
show more ...
|
| #
0c36da72 |
| 08-Apr-2021 |
Esme-Yi <[email protected]> |
[Debug-Info] Use inlined strings in .dwinfo section by default for DBX.
Summary: Set the default DwarfInlinedStrings as inlined strings for DBX, due to DBX does not support .dwstr section for now.
[Debug-Info] Use inlined strings in .dwinfo section by default for DBX.
Summary: Set the default DwarfInlinedStrings as inlined strings for DBX, due to DBX does not support .dwstr section for now.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D99933
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2 |
|
| #
c1d45abd |
| 08-Feb-2021 |
Jeremy Morse <[email protected]> |
Revert "Re-land D94976 after revert in e29552c5aff6"
Maskray has reported a fault with .debug_gnu_pubnames in the comments on D94976, caused by this patch, reverting to investigate.
This reverts co
Revert "Re-land D94976 after revert in e29552c5aff6"
Maskray has reported a fault with .debug_gnu_pubnames in the comments on D94976, caused by this patch, reverting to investigate.
This reverts commit 8998f5843503773c2f51fd475e2c77c687a65ee6.
show more ...
|
| #
8998f584 |
| 04-Feb-2021 |
Jeremy Morse <[email protected]> |
Re-land D94976 after revert in e29552c5aff6
This modified patch avoids redirecting the unit in which a subprogram is created if type units are enabled -- DIEs were getting children allocated from di
Re-land D94976 after revert in e29552c5aff6
This modified patch avoids redirecting the unit in which a subprogram is created if type units are enabled -- DIEs were getting children allocated from different units memory pools. Original commit message:
[DWARF] Create subprogram's DIE in DISubprogram's unit
This is a fix for PR48790. Over in D70350, subprogram DIEs were permitted to be shared between CUs. However, the creation of a subprogram DIE can be triggered early, from other CUs. The subprogram definition is then created in one CU, and when the function is actually emitted children are attached to the subprogram that expect to be in another CU. This breaks internal CU references in the children.
Fix this by redirecting the creation of subprogram DIEs in getOrCreateContextDIE to the CU specified by it's DISubprogram definition. This ensures that the subprogram DIE is always created in the correct CU.
Differential Revision: https://reviews.llvm.org/D94976
show more ...
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3 |
|
| #
4318028c |
| 28-Jan-2021 |
David Blaikie <[email protected]> |
DebugInfo: Add a DWARF FORM extension for addrx+offset references to reduce relocations
This is an alternative to the use of complex DWARF expressions for addresses - shaving off a few extra bytes o
DebugInfo: Add a DWARF FORM extension for addrx+offset references to reduce relocations
This is an alternative to the use of complex DWARF expressions for addresses - shaving off a few extra bytes of expression overhead.
show more ...
|
| #
e29552c5 |
| 28-Jan-2021 |
Shaurya Gupta <[email protected]> |
Revert "[DWARF] Create subprogram's DIE in DISubprogram's unit"
This reverts commit ef0dcb506300dc9644e8000c6028d14214be9d97.
This change is causing a lot of compiler crashes inside, sorry I don't
Revert "[DWARF] Create subprogram's DIE in DISubprogram's unit"
This reverts commit ef0dcb506300dc9644e8000c6028d14214be9d97.
This change is causing a lot of compiler crashes inside, sorry I don't have a small repro/stacktrace with symbols to share right now.
Differential Revision: https://reviews.llvm.org/D95622
show more ...
|