[PATCH] D116077: [AMDGPU][NFC] Update DWARF extension for locations on the stack
Tony Tye via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 20 21:59:00 PST 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG0a3258febf2f: [AMDGPU][NFC] Update DWARF extension for locations on the stack (authored by t-tye).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D116077/new/
https://reviews.llvm.org/D116077
Files:
llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md
Index: llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md
===================================================================
--- llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md
+++ llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md
@@ -3,7 +3,7 @@
- [Extension](#extension)
- [Heterogeneous Computing Devices](#heterogeneous-computing-devices)
- [DWARF 5](#dwarf-5)
- - [What is DWARF?](#what-is-dwarf)
+ - [How DWARF Maps Source Language To Hardware](#how-dwarf-maps-source-language-to-hardware)
- [Examples](#examples)
- [Dynamic Array Size](#dynamic-array-size)
- [Variable Location in Register](#variable-location-in-register)
@@ -29,15 +29,22 @@
# Extension
-This extension is to generalize the DWARF expression evaluation model to allow
-location descriptions to be manipulated on the stack. It is done in a manner
-that is backwards compatible with DWARF 5. This permits operations to act on
-location descriptions in an incremental, consistent, and composable manner.
-
-It allows a small number of operations to be defined to address the requirements
-of heterogeneous devices as well as providing benefits to non-heterogeneous
-devices. It also acts as a foundation to provide support for other issues that
-have been raised that would benefit all devices.
+In DWARF 5, expressions are evaluated using a typed value stack, a separate
+location area, and an independent loclist mechanism. This extension unifies all
+three mechanisms into a single generalized DWARF expression evaluation model
+that allows both typed values and location descriptions to be manipulated on the
+evaluation stack. Both single and multiple location descriptions are supported
+on the stack. In addition, the call frame information (CFI) is extended to
+support the full generality of location descriptions. This is done in a manner
+that is backwards compatible with DWARF 5. The extension involves changes to the
+DWARF 5 sections 2.5 (pp 26-38), 2.6 (pp 38-45), and 6.4 (pp 171-182).
+
+The extension permits operations to act on location descriptions in an
+incremental, consistent, and composable manner. It allows a small number of
+operations to be defined to address the requirements of heterogeneous devices as
+well as providing benefits to non-heterogeneous devices. It acts as a foundation
+to provide support for other issues that have been raised that would benefit all
+devices.
Other approaches were explored that involved adding specialized operations and
rules. However, these resulted in the need for more operations that did not
@@ -100,7 +107,7 @@
brief overview of the DWARF 5 expression evaluation model will be given to
highlight the aspects being addressed by the extension.
-## What is DWARF?
+## How DWARF Maps Source Language To Hardware
DWARF is a standardized way to specify debug information. It describes source
language entities such as compilation units, functions, types, variables, etc.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116077.395594.patch
Type: text/x-patch
Size: 3303 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211221/d02b8cb3/attachment.bin>
More information about the llvm-commits
mailing list