<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/DebugInfo/LogicalView/Readers, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>Reapply "[NFC][DebugInfo][DWARF] Create new low-level dwarf library (#… (#145959) (#146112)</title>
<updated>2025-06-27T18:05:49+00:00</updated>
<author>
<name>Sterling-Augustine</name>
<email>56981066+Sterling-Augustine@users.noreply.github.com</email>
</author>
<published>2025-06-27T18:05:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=23f1ba3ee456c8d691d1e7aba25de92fb9ba39e6'/>
<id>23f1ba3ee456c8d691d1e7aba25de92fb9ba39e6</id>
<content type='text'>
Reapply "[NFC][DebugInfo][DWARF] Create new low-level dwarf library (#…
(#145959)
    
This reapplies cbf781f0bdf2f680abbe784faedeefd6f84c246e, with fixes for
the shared-library build and the unconventional sanitizer-runtime build.

Original Description:

This is the culmination of a series of changes described in [1].
    
Although somewhat large by line count, it is almost entirely mechanical,
creating a new library in DebugInfo/DWARF/LowLevel. This new library has
very minimal dependencies, allowing it to be used from more places than
the normal DebugInfo/DWARF library--in particular from MC.
    
1.
https://discourse.llvm.org/t/rfc-debuginfo-dwarf-refactor-into-to-lower-and-higher-level-libraries/86665/2</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reapply "[NFC][DebugInfo][DWARF] Create new low-level dwarf library (#…
(#145959)
    
This reapplies cbf781f0bdf2f680abbe784faedeefd6f84c246e, with fixes for
the shared-library build and the unconventional sanitizer-runtime build.

Original Description:

This is the culmination of a series of changes described in [1].
    
Although somewhat large by line count, it is almost entirely mechanical,
creating a new library in DebugInfo/DWARF/LowLevel. This new library has
very minimal dependencies, allowing it to be used from more places than
the normal DebugInfo/DWARF library--in particular from MC.
    
1.
https://discourse.llvm.org/t/rfc-debuginfo-dwarf-refactor-into-to-lower-and-higher-level-libraries/86665/2</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[NFC][DebugInfo][DWARF] Create new low-level dwarf library (#… (#145959)</title>
<updated>2025-06-26T20:09:20+00:00</updated>
<author>
<name>Sterling-Augustine</name>
<email>56981066+Sterling-Augustine@users.noreply.github.com</email>
</author>
<published>2025-06-26T20:09:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5d03e7a2047c0927037275418ae340d83f5c70fb'/>
<id>5d03e7a2047c0927037275418ae340d83f5c70fb</id>
<content type='text'>
…145081)"

This reverts commit cbf781f0bdf2f680abbe784faedeefd6f84c246e.

Breaks a couple of buildbots.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
…145081)"

This reverts commit cbf781f0bdf2f680abbe784faedeefd6f84c246e.

Breaks a couple of buildbots.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][DebugInfo][DWARF] Create new low-level dwarf library (#145081)</title>
<updated>2025-06-26T18:23:46+00:00</updated>
<author>
<name>Sterling-Augustine</name>
<email>56981066+Sterling-Augustine@users.noreply.github.com</email>
</author>
<published>2025-06-26T18:23:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cbf781f0bdf2f680abbe784faedeefd6f84c246e'/>
<id>cbf781f0bdf2f680abbe784faedeefd6f84c246e</id>
<content type='text'>
This is the culmination of a series of changes described in [1].
    
Although somewhat large by line count, it is almost entirely mechanical,
creating a new library in DebugInfo/DWARF/LowLevel. This new library has
very minimal dependencies, allowing it to be used from more places than
the normal DebugInfo/DWARF library--in particular from MC.
    
I am happy to put it in another location, or to structure it differently
if that makes sense. Some have suggested in BinaryFormat, but it is not
a great fit there. But if that makes more sense to the reviewers, I can
do that.
 
Another possibility would be to use pass-through headers to allow
clients who don't care to depend only on DebugInfo/DWARF. This would be
a much less invasive change, and perhaps easier for clients. But also a
system that hides details.

Either way, I'm open.

1.
https://discourse.llvm.org/t/rfc-debuginfo-dwarf-refactor-into-to-lower-and-higher-level-libraries/86665/2</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the culmination of a series of changes described in [1].
    
Although somewhat large by line count, it is almost entirely mechanical,
creating a new library in DebugInfo/DWARF/LowLevel. This new library has
very minimal dependencies, allowing it to be used from more places than
the normal DebugInfo/DWARF library--in particular from MC.
    
I am happy to put it in another location, or to structure it differently
if that makes sense. Some have suggested in BinaryFormat, but it is not
a great fit there. But if that makes more sense to the reviewers, I can
do that.
 
Another possibility would be to use pass-through headers to allow
clients who don't care to depend only on DebugInfo/DWARF. This would be
a much less invasive change, and perhaps easier for clients. But also a
system that hides details.

Either way, I'm open.

1.
https://discourse.llvm.org/t/rfc-debuginfo-dwarf-refactor-into-to-lower-and-higher-level-libraries/86665/2</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-debuginfo-analyzer] Fix crash with WebAssembly dead code (#141616)</title>
<updated>2025-06-26T04:37:32+00:00</updated>
<author>
<name>Carlos Alberto Enciso</name>
<email>Carlos.Enciso@sony.com</email>
</author>
<published>2025-06-26T04:37:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8b7fc6487d568ef4f9f7029748e2ec179e0dc1dc'/>
<id>8b7fc6487d568ef4f9f7029748e2ec179e0dc1dc</id>
<content type='text'>
https://github.com/llvm/llvm-project/issues/136772
Incorrect handling of 'tombstone' value for WebAssembly.

llvm-debuginfo-analyzer already uses the tombstone approach
to identify dead code. Currently, the tombstone value is
evaluated as std::numeric_limits&lt;uint64_t&gt;::max(). Which is
wrong as it does not take into account the 'Address Byte Size'
from the Compile Unit header.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/llvm/llvm-project/issues/136772
Incorrect handling of 'tombstone' value for WebAssembly.

llvm-debuginfo-analyzer already uses the tombstone approach
to identify dead code. Currently, the tombstone value is
evaluated as std::numeric_limits&lt;uint64_t&gt;::max(). Which is
wrong as it does not take into account the 'Address Byte Size'
from the Compile Unit header.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Separate high-level-dependent portions of DWARFExpression (revised) (#143170)</title>
<updated>2025-06-09T23:32:40+00:00</updated>
<author>
<name>Sterling-Augustine</name>
<email>56981066+Sterling-Augustine@users.noreply.github.com</email>
</author>
<published>2025-06-09T23:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=474db6a85257612a2e878320d0bae51cb884d4f9'/>
<id>474db6a85257612a2e878320d0bae51cb884d4f9</id>
<content type='text'>
(Revised version of a previous, unreviewed, PR.)

Move all expression verification into its only client: DWARFVerifier.
Move all printing code (which was a mix of static and member functions)
into a separate class.

This is one in a series of refactoring PRs to separate dwarf
functionality into lower-level pieces usable without object files and
sections at build time. The code is already written this way via various
"if (section == nullptr)" and similar conditionals. So the functionality
itself is needed and exists, but only as a runtime feature. The goal of
these refactors is to remove the build-time dependencies, which will
allow the existing functionality to be used from lower-level parts of
the compiler. Particularly from lib/MC/.... More information at:


https://discourse.llvm.org/t/rfc-debuginfo-dwarf-refactor-into-to-lower-and-higher-level-libraries/86665</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(Revised version of a previous, unreviewed, PR.)

Move all expression verification into its only client: DWARFVerifier.
Move all printing code (which was a mix of static and member functions)
into a separate class.

This is one in a series of refactoring PRs to separate dwarf
functionality into lower-level pieces usable without object files and
sections at build time. The code is already written this way via various
"if (section == nullptr)" and similar conditionals. So the functionality
itself is needed and exists, but only as a runtime feature. The goal of
these refactors is to remove the build-time dependencies, which will
allow the existing functionality to be used from lower-level parts of
the compiler. Particularly from lib/MC/.... More information at:


https://discourse.llvm.org/t/rfc-debuginfo-dwarf-refactor-into-to-lower-and-higher-level-libraries/86665</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-debuginfo-analyzer] Add support for parsing DWARF / CodeView SourceLanguage (#137223)</title>
<updated>2025-06-06T14:03:07+00:00</updated>
<author>
<name>Javier Lopez-Gomez</name>
<email>javier.lopez.gomez@proton.me</email>
</author>
<published>2025-06-06T14:03:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0f38c54c6f4c1a45db0864412495cee61a0758e8'/>
<id>0f38c54c6f4c1a45db0864412495cee61a0758e8</id>
<content type='text'>
This pull request adds support for parsing the source language in both
DWARF and CodeView. Specifically,

- The `LVSourceLanguage` class is introduced to represent any supported
language by any of the debug info representations.

- Update `LVDWARFReader.cpp` and `LVCodeViewVisitor.cpp` to parse the
source language where it applies. Added a new `=Language` attribute;
`getAttributeLanguage()` is internally used to control whether this
information is being printed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This pull request adds support for parsing the source language in both
DWARF and CodeView. Specifically,

- The `LVSourceLanguage` class is introduced to represent any supported
language by any of the debug info representations.

- Update `LVDWARFReader.cpp` and `LVCodeViewVisitor.cpp` to parse the
source language where it applies. Added a new `=Language` attribute;
`getAttributeLanguage()` is internally used to control whether this
information is being printed.
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-debuginfo-analyzer][NFC] Move some functionality to LVReader. (#142740)</title>
<updated>2025-06-04T13:35:48+00:00</updated>
<author>
<name>Carlos Alberto Enciso</name>
<email>Carlos.Enciso@sony.com</email>
</author>
<published>2025-06-04T13:35:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fef5096a8ac64c391a4d07dfbddb9f874b007e65'/>
<id>fef5096a8ac64c391a4d07dfbddb9f874b007e65</id>
<content type='text'>
Hoist out from LVDWARFReader and LVBinaryReader some generic
code, so it can be available to other readers that do not share the
binary format.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Hoist out from LVDWARFReader and LVBinaryReader some generic
code, so it can be available to other readers that do not share the
binary format.</pre>
</div>
</content>
</entry>
<entry>
<title>[DebugInfo] Avoid creating a temporary instance of std::string (NFC) (#142523)</title>
<updated>2025-06-03T06:27:35+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-03T06:27:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d77c995f14634b98de4767afc296dc941b1a8cd0'/>
<id>d77c995f14634b98de4767afc296dc941b1a8cd0</id>
<content type='text'>
lookupTarget accepts StringRef.  We don't need to create a temporary
instance of std::string only to be converted back to StringRef.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
lookupTarget accepts StringRef.  We don't need to create a temporary
instance of std::string only to be converted back to StringRef.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-debuginfo-analyzer] Add support for DWARF `DW_AT_byte_size` (#139110)</title>
<updated>2025-05-22T13:20:40+00:00</updated>
<author>
<name>Javier Lopez-Gomez</name>
<email>javier.lopez.gomez@proton.me</email>
</author>
<published>2025-05-22T13:20:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9cac4bf485e64f7992f2c01bb9517f6379e58164'/>
<id>9cac4bf485e64f7992f2c01bb9517f6379e58164</id>
<content type='text'>
This PR was split from https://github.com/llvm/llvm-project/pull/137228
(which introduced support for `DW_TAG_module` and `DW_AT_byte_size`).

This PR improves `LVDWARFReader` by introducing handling of
`DW_AT_byte_size`. Most DWARF emitters include this attribute for types
to specify the size of an entity of the given type.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR was split from https://github.com/llvm/llvm-project/pull/137228
(which introduced support for `DW_TAG_module` and `DW_AT_byte_size`).

This PR improves `LVDWARFReader` by introducing handling of
`DW_AT_byte_size`. Most DWARF emitters include this attribute for types
to specify the size of an entity of the given type.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-debuginfo-analyzer] Support DW_TAG_module (#137228)</title>
<updated>2025-05-21T14:05:10+00:00</updated>
<author>
<name>Javier Lopez-Gomez</name>
<email>javier.lopez.gomez@proton.me</email>
</author>
<published>2025-05-21T14:05:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cb575785b96ead29d699201b2d1e1d1203fdb494'/>
<id>cb575785b96ead29d699201b2d1e1d1203fdb494</id>
<content type='text'>
- Adds support for `DW_TAG_module` DIEs and recurse over their children.
Prior to this patch, entities hanging below `DW_TAG_module` were just
not visible. This DIE kind is commonly generated by Objective-C modules.

This patch will represent such entities, which will print as
```
[001]    {CompileUnit} '/llvm/tools/clang/test/modules/&lt;stdin&gt;'
[002]      {Producer} 'LLVM version 3.7.0'
           {Directory} '/llvm/tools/clang/test/modules'
           {File} '&lt;stdin&gt;'
[002]      {Module} 'DebugModule'
```
The minimal test case included is just the result of
```
$ llc llvm/test/DebugInfo/X86/DIModule.ll
      -accel-tables=Dwarf
      -o llvm/unittests/DebugInfo/LogicalView/Inputs/test-dwarf-clang-module.o
      -filetype=obj
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Adds support for `DW_TAG_module` DIEs and recurse over their children.
Prior to this patch, entities hanging below `DW_TAG_module` were just
not visible. This DIE kind is commonly generated by Objective-C modules.

This patch will represent such entities, which will print as
```
[001]    {CompileUnit} '/llvm/tools/clang/test/modules/&lt;stdin&gt;'
[002]      {Producer} 'LLVM version 3.7.0'
           {Directory} '/llvm/tools/clang/test/modules'
           {File} '&lt;stdin&gt;'
[002]      {Module} 'DebugModule'
```
The minimal test case included is just the result of
```
$ llc llvm/test/DebugInfo/X86/DIModule.ll
      -accel-tables=Dwarf
      -o llvm/unittests/DebugInfo/LogicalView/Inputs/test-dwarf-clang-module.o
      -filetype=obj
```</pre>
</div>
</content>
</entry>
</feed>
