<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp, 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>Revert gsymutil changes due to concurrency problems (#142829)</title>
<updated>2025-06-04T18:34:12+00:00</updated>
<author>
<name>peremyach</name>
<email>akhabutdinov@meta.com</email>
</author>
<published>2025-06-04T18:34:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=246fa9a9f71166b4c7a5ec6544535452a68a07a5'/>
<id>246fa9a9f71166b4c7a5ec6544535452a68a07a5</id>
<content type='text'>
We saw occasional segfaults while processing some binaries. The reason
probably is that we may clear the DIE while we are reading it's data
from another thread which happens due to cross-unit references.

---------

Co-authored-by: Arslan Khabutdinov &lt;akhabutdinov@fb.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We saw occasional segfaults while processing some binaries. The reason
probably is that we may clear the DIE while we are reading it's data
from another thread which happens due to cross-unit references.

---------

Co-authored-by: Arslan Khabutdinov &lt;akhabutdinov@fb.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce llvm-gsymutil memory usage (#140740)</title>
<updated>2025-05-21T16:49:12+00:00</updated>
<author>
<name>peremyach</name>
<email>akhabutdinov@meta.com</email>
</author>
<published>2025-05-21T16:49:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d997b4f5318f5ce8bcebe818c636f107e5ec0fb6'/>
<id>d997b4f5318f5ce8bcebe818c636f107e5ec0fb6</id>
<content type='text'>
Same as https://github.com/llvm/llvm-project/pull/139907/ except there
is now a special dovoidwork helper function.
Previous approach with assert(f();return success;) failed tests for
release builds, so I created a separate helper. Open to suggestions how
to solve this more elegantly.

Co-authored-by: Arslan Khabutdinov &lt;akhabutdinov@fb.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Same as https://github.com/llvm/llvm-project/pull/139907/ except there
is now a special dovoidwork helper function.
Previous approach with assert(f();return success;) failed tests for
release builds, so I created a separate helper. Open to suggestions how
to solve this more elegantly.

Co-authored-by: Arslan Khabutdinov &lt;akhabutdinov@fb.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Reduce llvm-gsymutil memory usage" (#140696)</title>
<updated>2025-05-20T11:31:39+00:00</updated>
<author>
<name>peremyach</name>
<email>akhabutdinov@meta.com</email>
</author>
<published>2025-05-20T11:31:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5ed0b3a2d7596e3d04fe51998c14e7927e6d7e2e'/>
<id>5ed0b3a2d7596e3d04fe51998c14e7927e6d7e2e</id>
<content type='text'>
Reverts llvm/llvm-project#139907 as per discussion in
https://github.com/llvm/llvm-project/issues/140545 due to tests becoming
flaky</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#139907 as per discussion in
https://github.com/llvm/llvm-project/issues/140545 due to tests becoming
flaky</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce llvm-gsymutil memory usage (#139907)</title>
<updated>2025-05-16T16:44:17+00:00</updated>
<author>
<name>peremyach</name>
<email>akhabutdinov@meta.com</email>
</author>
<published>2025-05-16T16:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ebb15353d2a1edefb40faa0ad56e661b7aee3134'/>
<id>ebb15353d2a1edefb40faa0ad56e661b7aee3134</id>
<content type='text'>
For large binaries gsymutil ends up using too much memory. This diff
adds DIE tree cleanup per compile unit to reduce memory usage.

P. S. Not sure about formatting. Maybe it hasn't been run in a while, or
I have misconfigured something.

`$ git clang-format HEAD~1
clang-format did not modify any files
$ clang-format --version
clang-format version 21.0.0git
(git@github.com:peremyach/llvm-project.git
8d945c8357e1bd9872a34f92620d4916bfd27482)
`

Co-authored-by: Arslan Khabutdinov &lt;akhabutdinov@fb.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For large binaries gsymutil ends up using too much memory. This diff
adds DIE tree cleanup per compile unit to reduce memory usage.

P. S. Not sure about formatting. Maybe it hasn't been run in a while, or
I have misconfigured something.

`$ git clang-format HEAD~1
clang-format did not modify any files
$ clang-format --version
clang-format version 21.0.0git
(git@github.com:peremyach/llvm-project.git
8d945c8357e1bd9872a34f92620d4916bfd27482)
`

Co-authored-by: Arslan Khabutdinov &lt;akhabutdinov@fb.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Use StringRef::{starts_with,find} (NFC) (#139661)</title>
<updated>2025-05-13T06:24:07+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-13T06:24:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c95745f2dbe61bedebe0d77e1e7beab18157fc13'/>
<id>c95745f2dbe61bedebe0d77e1e7beab18157fc13</id>
<content type='text'>
Calling find/contains in the StringRef domain allows us to avoid
creating temporary instances of std::string.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling find/contains in the StringRef domain allows us to avoid
creating temporary instances of std::string.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Use llvm::append_range (NFC) (#135931)</title>
<updated>2025-04-16T19:28:47+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-04-16T19:28:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c4e9901b5b660f7c64570c3440080436c8e8b32e'/>
<id>c4e9901b5b660f7c64570c3440080436c8e8b32e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][DebugInfo] Wrap DILineInfo return type with std::optional to handle missing debug info. (#129792)</title>
<updated>2025-03-17T21:01:06+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2025-03-17T21:01:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6dbe82f061bf494bc91ed458726c8080269f64f6'/>
<id>6dbe82f061bf494bc91ed458726c8080269f64f6</id>
<content type='text'>
Currently, `DIContext::getLineInfoForAddress` and
`DIContext::getLineInfoForDataAddress` returns empty DILineInfo when the
debug info is missing for the given address. This is not differentiable
with the case when debug info is found for the given address but the
debug info is default value (filename:linenum is &lt;invalid&gt;:0).

This change wraps the return types of `DIContext::getLineInfoForAddress`
and `DIContext::getLineInfoForDataAddress` with `std::optional`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, `DIContext::getLineInfoForAddress` and
`DIContext::getLineInfoForDataAddress` returns empty DILineInfo when the
debug info is missing for the given address. This is not differentiable
with the case when debug info is found for the given address but the
debug info is default value (filename:linenum is &lt;invalid&gt;:0).

This change wraps the return types of `DIContext::getLineInfoForAddress`
and `DIContext::getLineInfoForDataAddress` with `std::optional`.</pre>
</div>
</content>
</entry>
<entry>
<title>[GSYM] Fix incorrect comparison in gSYM creation (#131197)</title>
<updated>2025-03-14T16:13:08+00:00</updated>
<author>
<name>alx32</name>
<email>103613512+alx32@users.noreply.github.com</email>
</author>
<published>2025-03-14T16:13:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8c31bb7da34ac5d8a5e7db4d3964039dfd09a73f'/>
<id>8c31bb7da34ac5d8a5e7db4d3964039dfd09a73f</id>
<content type='text'>
There is a bug in `llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp` where
`StmtSeqVal` was being compared against `UINT32_MAX` rather than the
correct `UINT64_MAX` - thanks @nocchijiang for [pointing this
out](https://github.com/llvm/llvm-project/pull/129196#discussion_r1986203058).

We correct the issue with this patch. For testing - the issue would show
when we have a correct offset of value `UINT32_MAX` - but constructing
such a test is impractical.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a bug in `llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp` where
`StmtSeqVal` was being compared against `UINT32_MAX` rather than the
correct `UINT64_MAX` - thanks @nocchijiang for [pointing this
out](https://github.com/llvm/llvm-project/pull/129196#discussion_r1986203058).

We correct the issue with this patch. For testing - the issue would show
when we have a correct offset of value `UINT32_MAX` - but constructing
such a test is impractical.</pre>
</div>
</content>
</entry>
<entry>
<title>[GSYM] Use debug line offsets during GSYM creation (#129196)</title>
<updated>2025-03-03T19:22:16+00:00</updated>
<author>
<name>alx32</name>
<email>103613512+alx32@users.noreply.github.com</email>
</author>
<published>2025-03-03T19:22:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=28fc00b10ef72a3573905826ecdee693fd620959'/>
<id>28fc00b10ef72a3573905826ecdee693fd620959</id>
<content type='text'>
This patch introduces support for the `DW_AT_LLVM_stmt_sequence`
attribute in the GSYM DWARF transformer. With this change, the DWARF
GSYM creation process can now accurately associate debug information
with the correct functions, even when multiple functions have been
merged together.

The `macho-gsym-merged-callsites-dsym.yaml` test data is regenerated to
include the fixes in the DWARF linker
(https://github.com/llvm/llvm-project/pull/128953) and the test is
updated to check that debug data is correctly associated for merged
functions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch introduces support for the `DW_AT_LLVM_stmt_sequence`
attribute in the GSYM DWARF transformer. With this change, the DWARF
GSYM creation process can now accurately associate debug information
with the correct functions, even when multiple functions have been
merged together.

The `macho-gsym-merged-callsites-dsym.yaml` test data is regenerated to
include the fixes in the DWARF linker
(https://github.com/llvm/llvm-project/pull/128953) and the test is
updated to check that debug data is correctly associated for merged
functions.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm-gsymutil] Add option to load callsites from DWARF (#119913)</title>
<updated>2024-12-17T16:51:30+00:00</updated>
<author>
<name>alx32</name>
<email>103613512+alx32@users.noreply.github.com</email>
</author>
<published>2024-12-17T16:51:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=558de0e1f993f413a9c8b93d969b28b651c6e437'/>
<id>558de0e1f993f413a9c8b93d969b28b651c6e437</id>
<content type='text'>
This change adds support for loading gSYM callsite information from
DWARF. Previously the only support was for loading callsites info from
YAML.

For testing, we add a pass where `macho-gsym-merged-callsites-dsym`
loads callsite info from DWARF rather than YAML.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change adds support for loading gSYM callsite information from
DWARF. Previously the only support was for loading callsites info from
YAML.

For testing, we add a pass where `macho-gsym-merged-callsites-dsym`
loads callsite info from DWARF rather than YAML.
</pre>
</div>
</content>
</entry>
</feed>
