[llvm] 24660ea - [docs] HowToUpdateDebugInfo: Minor cleanups
Vedant Kumar via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 4 14:56:36 PDT 2020
Author: Vedant Kumar
Date: 2020-06-04T14:56:01-07:00
New Revision: 24660ea11cb1d4090c68d06ef2a9ba4b9895794f
URL: https://github.com/llvm/llvm-project/commit/24660ea11cb1d4090c68d06ef2a9ba4b9895794f
DIFF: https://github.com/llvm/llvm-project/commit/24660ea11cb1d4090c68d06ef2a9ba4b9895794f.diff
LOG: [docs] HowToUpdateDebugInfo: Minor cleanups
- Change the reference to salvageDebugInfoOrUndef to salvageDebugInfo
(in accordance with https://reviews.llvm.org/D78369).
- Reorganize a few sections in preparation for an upcoming change that
attempts to specify rules for updating debug locations.
- Fix some intra-document links.
- Some spelling / wording fixes.
Added:
Modified:
llvm/docs/HowToUpdateDebugInfo.rst
Removed:
################################################################################
diff --git a/llvm/docs/HowToUpdateDebugInfo.rst b/llvm/docs/HowToUpdateDebugInfo.rst
index 2ab037b3ecc4..ef309d282ca3 100644
--- a/llvm/docs/HowToUpdateDebugInfo.rst
+++ b/llvm/docs/HowToUpdateDebugInfo.rst
@@ -34,10 +34,9 @@ possible outcome. However, it's often possible to do better:
``Value::replaceAllUsesWith`` API transparently updates debug uses of the
dying instruction to point to the replacement value.
-* If the dying instruction cannot be RAUW'd, call
- ``llvm::salvageDebugInfoOrMarkUndef`` on it. This makes a best-effort attempt
- to rewrite debug uses of the dying instruction by describing its effect as a
- ``DIExpression``.
+* If the dying instruction cannot be RAUW'd, call ``llvm::salvageDebugInfo`` on
+ it. This makes a best-effort attempt to rewrite debug uses of the dying
+ instruction by describing its effect as a ``DIExpression``.
* If one of the **operands** of a dying instruction would become trivially
dead, use ``llvm::replaceAllDbgUsesWith`` to rewrite the debug uses of that
@@ -88,30 +87,15 @@ You may have noticed that ``%simplified`` is narrower than ``%c``: this is not
a problem, because ``llvm::replaceAllDbgUsesWith`` takes care of inserting the
necessary conversion operations into the DIExpressions of updated debug uses.
-Hoisting an Instruction
------------------------
-
-TODO
-
-Sinking an Instruction
-----------------------
-
-TODO
-
-Cloning an Instruction
-----------------------
+Deleting a MIR-level MachineInstr
+---------------------------------
TODO
-Merging two Instructions
-------------------------
+How to automatically convert tests into debug info tests
+========================================================
-TODO
-
-Creating an artificial Instruction
-----------------------------------
-
-TODO
+.. _IRDebugify:
Mutation testing for IR-level transformations
---------------------------------------------
@@ -221,7 +205,7 @@ In order for ``check-debugify`` to work, the DI must be coming from
There is also a MIR-level debugify pass that can be run before each backend
pass, see:
-:ref:`Mutation testing for MIR-level transformations`.
+:ref:`Mutation testing for MIR-level transformations<MIRDebugify>`.
``debugify`` in regression tests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -235,42 +219,17 @@ tests. Changes to this pass are not allowed to break existing tests.
check lines. In cases where this can't be avoided (say, if a test wouldn't
be precise enough), moving the test to its own file is preferred.
-MIR-level transformations
-=========================
-
-Deleting a MachineInstr
------------------------
-
-TODO
-
-Hoisting a MachineInstr
------------------------
-
-TODO
-
-Sinking a MachineInstr
-----------------------
-
-TODO
-
-Cloning a MachineInstr
-----------------------
-
-TODO
-
-Creating an artificial MachineInstr
------------------------------------
-
-TODO
+.. _MIRDebugify:
Mutation testing for MIR-level transformations
----------------------------------------------
-A varaint of the ``debugify`` utility described in :ref:`Mutation testing for
-IR-level transformations` can be used for MIR-level transformations as well:
-much like the IR-level pass, ``mir-debugify`` inserts sequentially increasing
-line locations to each ``MachineInstr`` in a ``Module`` (although there is no
-equivalent MIR-level ``check-debugify`` pass).
+A variant of the ``debugify`` utility described in
+:ref:`Mutation testing for IR-level transformations<IRDebugify>` can be used
+for MIR-level transformations as well: much like the IR-level pass,
+``mir-debugify`` inserts sequentially increasing line locations to each
+``MachineInstr`` in a ``Module`` (although there is no equivalent MIR-level
+``check-debugify`` pass).
For example, here is a snippet before:
@@ -305,7 +264,7 @@ and after running ``llc -run-pass=mir-debugify``:
By default, ``mir-debugify`` inserts ``DBG_VALUE`` instructions **everywhere**
it is legal to do so. In particular, every (non-PHI) machine instruction that
-defines a register should be followed by a ``DBG_VALUE`` use of that def. If
+defines a register must be followed by a ``DBG_VALUE`` use of that def. If
an instruction does not define a register, but can be followed by a debug inst,
MIRDebugify inserts a ``DBG_VALUE`` that references a constant. Insertion of
``DBG_VALUE``'s can be disabled by setting ``-debugify-level=locations``.
@@ -345,7 +304,7 @@ For example, to run the AArch64 backend tests with all normal passes
$ llvm-lit test/CodeGen/AArch64 -Dllc="llc -debugify-and-strip-all-safe"
-Using the LostDebugLocObserver
-------------------------------
+Using LostDebugLocObserver
+--------------------------
TODO
More information about the llvm-commits
mailing list