[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