[all-commits] [llvm/llvm-project] af6d43: [AsmPrinter][DebugInfo] Create EntryValue mode for...
Felipe de Azevedo Piovezan via All-commits
all-commits at lists.llvm.org
Wed Aug 23 09:29:43 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: af6d43ea6641917445d8c335952d849d9b00b36a
https://github.com/llvm/llvm-project/commit/af6d43ea6641917445d8c335952d849d9b00b36a
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2023-08-23 (Wed, 23 Aug 2023)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
M llvm/test/DebugInfo/AArch64/dbg-entry-value-swiftasync.mir
Log Message:
-----------
[AsmPrinter][DebugInfo] Create EntryValue mode for DbgVariable
With D149881, we converted EntryValue MachineFunction table entries into
`DbgVariables` initialized by a "DbgValue" intrinsic, which can only handle a
single, non-fragment DIExpression. However, it is desirable to handle variables
with multiple fragments and DIExpressions.
To do this, we expand the `DbgVariable` class to handle the EntryValue case.
This class can already operate under three different "modes" (stack slot,
unchanging location described by a dbg value, changing location described by a
loc list). A fourth case is added as a separate class entirely, but a subsequent
patch should redesign `DbgVariable` with four subclasses in order to make the
code more readable.
This patch also exposed a bug in the `beginEntryValueExpression` function, which
was not initializing the `LocationFlags` properly. Note how the
`finalizeEntryValue` function resets that flag. We fix this bug here, as testing
this changing in isolation would be tricky.
Differential Revision: https://reviews.llvm.org/D158458
More information about the All-commits
mailing list