User Details
- User Since
- Sep 6 2015, 10:51 PM (280 w, 3 d)
Fri, Jan 15
Is it possible to encapsulate the target-specific logic into some derived classes from {{MCStreamer}} so that {{MCStreamer}} itself and DWARF emitter classes work through a common interface and have no target-specific adjustments?
I suppose that you describe how .dwsect pseudo-op works. That is quite interesting, why they designed the feature to work that way. Is it recommended to reference debug sections through the label minus the length field size (4 or 12) or they provide some means to simplify the calculation? How an assembler output of their own compiler looks like?
Thu, Jan 14
Trying to force CI to run.
- Updated as suggested. Thanks, @ldionne!
The current code violates the C++ standard, which says (in different sections, depending on the version):
Dec 20 2020
Nov 18 2020
Nov 16 2020
It looks like lld/test/COFF/lto-new-pass-manager.ll.obj was added to the patch by accident and should be removed.
Nov 13 2020
Well, this is a bit different from my original idea but is an overall good heuristic for many of the debug sections. It works for .debug_info, which is one of the biggest sections; it does not work for .debug_line, though, which is not that big as .debug_info, but potentially might become problematic in the (distant) future; it also does not work for .debug_abbrev, .debug_addr, .debug_ranges, and some others, which are usually not that big. However, the patch should be extended to support .debug_str, which can be even larger than .debug_info.
Nov 6 2020
Nov 5 2020
- The patch needs tests to check the added functionality.
- DWARF64 can be generated only for a limited number of targets. There should be diagnostics for invalid switch combinations to prevent misuse. @MaskRay mentioned that in the patch for llc, D87011#2254749, but that makes a lot more sense for user-level tools.
I suppose that it would be helpful to arrange debugging information sections so that DWARF64 comes after DWARF32, otherwise, some 32-bit relocations in the 32-bit info could not be resolved. But that idea might be a bit controversial because usually debugging information is expected to have the same order as the sections it refers to.
Nov 4 2020
To generate 64-bit debugging info, there should be enough to pass the switch through CLANG, right. Apart from that, we will probably need some compatibility checks so that using the switch in unsupported cases prints out diagnostics. There are also some improvements on the LLD side which are better to be done to support extremely large debugging information. Not all our tools fully support DWARF64 yet, etc.
Oct 28 2020
The switch is implemented only internally in LLVM. There is still some work to be done to enable producing 64-bit debugging info in clang, but I strayed a bit for another task. Hope to come back later this year.
Oct 27 2020
Oct 23 2020
Oct 22 2020
- Updated the test as suggested. Thanks, @bd1976llvm!
Oct 21 2020
Oct 19 2020
Oct 16 2020
Hmm, that starts looking like a discussion for the mailing list, but I guess that all interested people are already here and the conversation will be better preserved for further references if being linked to the review.
Oct 15 2020
Oct 14 2020
Gently ping. Is there anything I can improve in the fix so that it is accepted?
Oct 8 2020
I've made some tests and speculatively estimate the saving up to several seconds for a relatively large library (about 100000 symbols) which is referenced several hundred times. For me, that is noticeable.
Oct 6 2020
- Simplified the comment.
- Fixed the comment.
Sep 21 2020
Sep 16 2020
D87008 added creating a test AsmPrinter to the CodeGen unit tests, so it is now possible to fix the DIEHashTest.MemberBlock so that it provides an instance to the tested class.
Sep 14 2020
Sep 11 2020
Sep 10 2020
Ping (for this and other not yet accepted revisions in the stack).
Sep 4 2020
- Relaxed checking in the test. The line is a bit longer than I suggested because the test has to validate emitting the abbr_offset field.
- Updated the test as suggested. Thanks!
Sep 3 2020
- Added reporting a fatal error if the generated debug info exceeds the limits supported by the format.