<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/docs/SourceLevelDebugging.rst, branch main</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>Add new llvm.dbg.declare_value intrinsic. (#168132)</title>
<updated>2025-11-22T08:49:35+00:00</updated>
<author>
<name>Shubham Sandeep Rastogi</name>
<email>Shubham.Rastogi@sony.com</email>
</author>
<published>2025-11-22T08:49:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=20ebc7ea8209cb8f1ff3916706b6e7d8232c9f3f'/>
<id>20ebc7ea8209cb8f1ff3916706b6e7d8232c9f3f</id>
<content type='text'>
For swift async code, we need to use a debug intrinsic that behaves like
an llvm.dbg.declare but can take any location type rather than just a
pointer or integer.

To solve this, a new debug instrinsic called llvm.dbg.declare_value has
been created, which behaves exactly like an llvm.dbg.declare but can
take non pointer and integer location types.

More information here:
https://discourse.llvm.org/t/rfc-introduce-new-llvm-dbg-coroframe-entry-intrinsic/88269

This is the first patch as part of a stack of patches, with the one
succeeding it being: https://github.com/llvm/llvm-project/pull/168134</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For swift async code, we need to use a debug intrinsic that behaves like
an llvm.dbg.declare but can take any location type rather than just a
pointer or integer.

To solve this, a new debug instrinsic called llvm.dbg.declare_value has
been created, which behaves exactly like an llvm.dbg.declare but can
take non pointer and integer location types.

More information here:
https://discourse.llvm.org/t/rfc-introduce-new-llvm-dbg-coroframe-entry-intrinsic/88269

This is the first patch as part of a stack of patches, with the one
succeeding it being: https://github.com/llvm/llvm-project/pull/168134</pre>
</div>
</content>
</entry>
<entry>
<title>[doc] Remove unsafe-fp-math references (#164579)</title>
<updated>2025-10-22T10:24:43+00:00</updated>
<author>
<name>paperchalice</name>
<email>liujunchang97@outlook.com</email>
</author>
<published>2025-10-22T10:24:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4f020c4fb3b014e00caeee14a48f1063390977f8'/>
<id>4f020c4fb3b014e00caeee14a48f1063390977f8</id>
<content type='text'>
Stop mentioning `unsafe-fp-math` related things in documents.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Stop mentioning `unsafe-fp-math` related things in documents.</pre>
</div>
</content>
</entry>
<entry>
<title>[LangRef] Rework DIExpression docs (#153072)</title>
<updated>2025-08-21T20:32:53+00:00</updated>
<author>
<name>Scott Linder</name>
<email>scott.linder@amd.com</email>
</author>
<published>2025-08-21T20:32:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=76b8e1920301027ab109fd3491ac79833d3367b4'/>
<id>76b8e1920301027ab109fd3491ac79833d3367b4</id>
<content type='text'>
Factor out most of the DIExpression docs from LangRef.rst into
SourceLevelDebugging.rst

What remains in LangRef is just enough context to make sense of how
DIExpression-as-metadata fits into the IR, including some examples of
the DIExpression syntax.

The rest now lives in the SourceLevelDebugging document, which gives
more context to make sense of DIExpression-as-semantic-entity.

Use sections to clearly separate DWARF opcodes from LLVM internal-only
opcodes, where before the distinction was only explicit in the source
code.

Also make some other changes like fixing typos, using :ref: rather than
unchecked links, and rewording DW_OP_LLVM_entry_value.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Factor out most of the DIExpression docs from LangRef.rst into
SourceLevelDebugging.rst

What remains in LangRef is just enough context to make sense of how
DIExpression-as-metadata fits into the IR, including some examples of
the DIExpression syntax.

The rest now lives in the SourceLevelDebugging document, which gives
more context to make sense of DIExpression-as-semantic-entity.

Use sections to clearly separate DWARF opcodes from LLVM internal-only
opcodes, where before the distinction was only explicit in the source
code.

Also make some other changes like fixing typos, using :ref: rather than
unchecked links, and rewording DW_OP_LLVM_entry_value.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Proofread SourceLevelDebugging.rst (#152838)</title>
<updated>2025-08-09T13:58:13+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-08-09T13:58:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=190ad0b1275de7fae75b0ed4add250ee1e52b813'/>
<id>190ad0b1275de7fae75b0ed4add250ee1e52b813</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Proofread SourceLevelDebugging.rst (#152646)</title>
<updated>2025-08-08T14:45:14+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-08-08T14:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8afa70f1c816289e36bf4a9f44ad9a6361a95266'/>
<id>8afa70f1c816289e36bf4a9f44ad9a6361a95266</id>
<content type='text'>
This patch takes care of the highly mechanical part of proofreading
SourceLevelDebugging.rst, namely:

- hyphenating "32 bit value" and similar and
- hypenating "Objective C"</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch takes care of the highly mechanical part of proofreading
SourceLevelDebugging.rst, namely:

- hyphenating "32 bit value" and similar and
- hypenating "Objective C"</pre>
</div>
</content>
</entry>
<entry>
<title>[LangRef] Clarify definition of fragments (#145582)</title>
<updated>2025-06-25T14:54:51+00:00</updated>
<author>
<name>Scott Linder</name>
<email>scott.linder@amd.com</email>
</author>
<published>2025-06-25T14:54:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c9910d5ef8b7622ce2568a01073d912370f6d3fc'/>
<id>c9910d5ef8b7622ce2568a01073d912370f6d3fc</id>
<content type='text'>
Try to give a more complete description of what we call a "fragment",
and how debug records interact when fragments are involved.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Try to give a more complete description of what we call a "fragment",
and how debug records interact when fragments are involved.</pre>
</div>
</content>
</entry>
<entry>
<title>[DebugInfo] Preserve line and column number when merging debug info. (#129960)</title>
<updated>2025-04-04T16:37:25+00:00</updated>
<author>
<name>Snehasish Kumar</name>
<email>snehasishk@google.com</email>
</author>
<published>2025-04-04T16:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f9193f3b18f08547e2f92b5e354a44655bfc1b94'/>
<id>f9193f3b18f08547e2f92b5e354a44655bfc1b94</id>
<content type='text'>
This patch introduces a new option `-preserve-merged-debug-info` to
preserve an arbitrary but deterministic version of debug information
when DILocations are merged. This is intended to be used in production
environments from which sample based profiles are derived such as
AutoFDO and MemProf.

With this patch we have see a 0.2% improvement on an internal workload
at Google when generating AutoFDO profiles. It also significantly
improves the ability for MemProf by preserving debug info for merged
call instructions used in the contextual profile.

---------

Co-authored-by: Krzysztof Pszeniczny &lt;kpszeniczny@google.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch introduces a new option `-preserve-merged-debug-info` to
preserve an arbitrary but deterministic version of debug information
when DILocations are merged. This is intended to be used in production
environments from which sample based profiles are derived such as
AutoFDO and MemProf.

With this patch we have see a 0.2% improvement on an internal workload
at Google when generating AutoFDO profiles. It also significantly
improves the ability for MemProf by preserving debug info for merged
call instructions used in the contextual profile.

---------

Co-authored-by: Krzysztof Pszeniczny &lt;kpszeniczny@google.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[Verifier] Require that dbg.declare variable is a ptr (#134355)</title>
<updated>2025-04-04T13:34:45+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-04-04T13:34:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ecd4c0857b69e2c3f592d805bafde8e9f6a19005'/>
<id>ecd4c0857b69e2c3f592d805bafde8e9f6a19005</id>
<content type='text'>
As far as I understand, the first operand of dbg_declare should be a
pointer (inside a metadata wrapper). However, using a non-pointer is
currently not rejected, and we have some tests that use non-pointer
types. As far as I can tell, these tests either meant to use dbg_value
or are just incorrect hand-crafted tests.

Ran into this while trying to `fix` #134008.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As far as I understand, the first operand of dbg_declare should be a
pointer (inside a metadata wrapper). However, using a non-pointer is
currently not rejected, and we have some tests that use non-pointer
types. As far as I can tell, these tests either meant to use dbg_value
or are just incorrect hand-crafted tests.

Ran into this while trying to `fix` #134008.</pre>
</div>
</content>
</entry>
<entry>
<title>[docs] SourceLevelDebugging: fix metadata references (#101187)</title>
<updated>2024-07-30T14:24:07+00:00</updated>
<author>
<name>Michael Buch</name>
<email>michaelbuch12@gmail.com</email>
</author>
<published>2024-07-30T14:24:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6b08e4d3ac52c4cccba650d6a8afce61dcb6fb2f'/>
<id>6b08e4d3ac52c4cccba650d6a8afce61dcb6fb2f</id>
<content type='text'>
The metadata was off-by-one in a couple of places, making the
explanatory text incorrect.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The metadata was off-by-one in a couple of places, making the
explanatory text incorrect.</pre>
</div>
</content>
</entry>
<entry>
<title>[RemoveDIs] Update all docs to use debug records (#91768)</title>
<updated>2024-06-11T13:16:32+00:00</updated>
<author>
<name>Stephen Tozer</name>
<email>stephen.tozer@sony.com</email>
</author>
<published>2024-06-11T13:16:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=400d4fd7b6dea9c7cdd255bb804fcd0ee77f6d42'/>
<id>400d4fd7b6dea9c7cdd255bb804fcd0ee77f6d42</id>
<content type='text'>
As we approach the state where support for debug intrinsics is dropping and
we print and use debug records by default, the documentation should be updated
to refer to debug records as the primary debug info representation, with
debug intrinsics being relegated to an optional alternative.

This patch performs a few updates:
- Replace references to intrinsics with references to records across all
the documentation.
- Replace intrinsics with records in code examples.
- Move debug records prior to debug intrinsics in the
SourceLevelDebugging document, and change text to refer to them as the
primary representation.
- Add release notes describing the change.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As we approach the state where support for debug intrinsics is dropping and
we print and use debug records by default, the documentation should be updated
to refer to debug records as the primary debug info representation, with
debug intrinsics being relegated to an optional alternative.

This patch performs a few updates:
- Replace references to intrinsics with references to records across all
the documentation.
- Replace intrinsics with records in code examples.
- Move debug records prior to debug intrinsics in the
SourceLevelDebugging document, and change text to refer to them as the
primary representation.
- Add release notes describing the change.</pre>
</div>
</content>
</entry>
</feed>
