<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/DebugInfo/DWARF/DWARFContext.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>[DebugInfo] Use std::map::try_emplace (NFC) (#140839)</title>
<updated>2025-05-21T04:39:34+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-21T04:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=557448e14420e1a916280ea6c61cafbf833ff948'/>
<id>557448e14420e1a916280ea6c61cafbf833ff948</id>
<content type='text'>
This patch provides default member initialization for SymInfo, which
in turns allows us to call std::map::try_emplace without the value.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch provides default member initialization for SymInfo, which
in turns allows us to call std::map::try_emplace without the value.</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>Revert "Reland "Symbolize line zero as if no source info is available (#124846)" (#133798)"</title>
<updated>2025-04-10T01:09:31+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2025-04-10T01:02:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=78b21ddba7bc43b1e59d97ccad51133858a9ce91'/>
<id>78b21ddba7bc43b1e59d97ccad51133858a9ce91</id>
<content type='text'>
This reverts commit 348374028970c956f2e49ab7553b495d7408ccd9 because #128619 doesn't handle the case when we have an empty frame from `getInliningInfoForAddress` because line num is 0 which makes it non-differentiable from missing debug info. So, we end up using the base filename from symtab again. Reverting for now until that issus is solved.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 348374028970c956f2e49ab7553b495d7408ccd9 because #128619 doesn't handle the case when we have an empty frame from `getInliningInfoForAddress` because line num is 0 which makes it non-differentiable from missing debug info. So, we end up using the base filename from symtab again. Reverting for now until that issus is solved.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "Symbolize line zero as if no source info is available (#124846)" (#133798)</title>
<updated>2025-03-31T23:13:46+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2025-03-31T23:13:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=348374028970c956f2e49ab7553b495d7408ccd9'/>
<id>348374028970c956f2e49ab7553b495d7408ccd9</id>
<content type='text'>
This land commits 23aca2f88dd5d2447e69496c89c3ed42a56f9c31 and
1b15a89a23c631a8e2d096dad4afe456970572c0.
https://github.com/llvm/llvm-project/pull/128619 makes symbolizer to
always use debug info when available so we can reland this chagnge.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This land commits 23aca2f88dd5d2447e69496c89c3ed42a56f9c31 and
1b15a89a23c631a8e2d096dad4afe456970572c0.
https://github.com/llvm/llvm-project/pull/128619 makes symbolizer to
always use debug info when available so we can reland this chagnge.</pre>
</div>
</content>
</entry>
<entry>
<title>[Symbolize] Always use filename:line from debug info when debug info for the given address is available. (#128619)</title>
<updated>2025-03-25T20:09:23+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2025-03-25T20:09:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=535b28444f8e1284583c3771eaf64e1e27bbcb28'/>
<id>535b28444f8e1284583c3771eaf64e1e27bbcb28</id>
<content type='text'>
To reland https://github.com/llvm/llvm-project/pull/124846, we need to
make symbolizer consistent with the case when line number is 0. Always
using filename and line from debug info even if the line number is 0
sounds like the reasonable path to go.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To reland https://github.com/llvm/llvm-project/pull/124846, we need to
make symbolizer consistent with the case when line number is 0. Always
using filename and line from debug info even if the line number is 0
sounds like the reasonable path to go.</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>Revert "Symbolize line zero as if no source info is available (#124846)"</title>
<updated>2025-02-24T21:00:33+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2025-02-24T20:53:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=23aca2f88dd5d2447e69496c89c3ed42a56f9c31'/>
<id>23aca2f88dd5d2447e69496c89c3ed42a56f9c31</id>
<content type='text'>
This commit creates an inconsistency on `__sanitizer_symbolize_pc` API. Before this change, this API always uses the filename from debug info when the line number is 0. After this change, the filename becomes invalid when line number is 0. The sanitizer might fall back to use base filename from symbol table. So, this API may return either `??:0` or `{filename from symbol table}:0` depending on if the symbol table has the filename for it. Make sure this inconsistency is resolved before relanding the commit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit creates an inconsistency on `__sanitizer_symbolize_pc` API. Before this change, this API always uses the filename from debug info when the line number is 0. After this change, the filename becomes invalid when line number is 0. The sanitizer might fall back to use base filename from symbol table. So, this API may return either `??:0` or `{filename from symbol table}:0` depending on if the symbol table has the filename for it. Make sure this inconsistency is resolved before relanding the commit.
</pre>
</div>
</content>
</entry>
</feed>
