[llvm] [Docs][CodeView] Document `S_LOCAL` and `S_DEFRANGE*` (PR #190156)
Alexandre Ganea via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 3 17:11:46 PDT 2026
================
@@ -184,27 +184,156 @@ S_ENVBLOCK (0x113d)
S_LOCAL (0x113e)
^^^^^^^^^^^^^^^^
+Defines a local variable.
+This record is followed by a series of ``S_DEFRANGE*`` records that define the
+live range of this variable.
+
+All ``S_DEFRANGE*`` records consist of a header followed by
+``LocalVariableAddrRange`` and a list of ``LocalVariableAddrGap`` (until the
+record length is reached).
+
+.. code:: cpp
+
+ /// A live range of a variable.
+ struct LocalVariableAddrRange {
+ /// Starting offset in the section
+ uint32_t OffsetStart;
+ /// Index of the section
+ uint16_t ISectStart;
+ /// Size of the range
+ uint16_t Range;
+ };
+ /// A subrange of a `LocalVariableAddrRange` where a variable is _not_ live.
+ struct LocalVariableAddrGap {
+ /// Start of the range, relative to `LocalVariableAddrRange::OffsetStart`
+ uint16_t GapStartOffset;
+ /// Size of the range
+ uint16_t Range;
+ };
+
+The following records only describe the header.
+
S_DEFRANGE (0x113f)
^^^^^^^^^^^^^^^^^^^
----------------
aganea wrote:
Short description like all the others?
https://github.com/llvm/llvm-project/pull/190156
More information about the llvm-commits
mailing list