[PATCH] D70121: [WIP][DebugInfo][LDV] Attempt to teach LDV how to handle fragments

Adrian Prantl via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 12 09:23:14 PST 2019


aprantl added inline comments.


================
Comment at: llvm/lib/CodeGen/LiveDebugVariables.cpp:112
+  /// May return nullptr if this is a dummy value.
+  const DIExpression *expression() const { return Expression; }
+
----------------
getExpression


================
Comment at: llvm/lib/CodeGen/LiveDebugVariables.cpp:114
+
+  unsigned locNo() const { return LocNo; }
 
----------------
getLocNo


================
Comment at: llvm/lib/CodeGen/LiveDebugVariables.cpp:322
+/// A user value group contains the set of debug info user variables
+/// which refer to the same DILocalVariable in the same inlining scope.
+class UserValueGroup {
----------------
I don't know if this helps, but in other places we conceptually treat `std::pair<DILocalVariable *, FragmentInfo>` as unique "variables" and the remainder expression as part of a "location".


================
Comment at: llvm/lib/CodeGen/LiveDebugVariables.cpp:428
+  /// Map virtual register to UserValues which use it.
+  using VRMap = std::unordered_map<unsigned, SmallVector<UserValue *, 4>>;
+  VRMap VirtRegToUserVals;
----------------
Why this change?


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70121/new/

https://reviews.llvm.org/D70121





More information about the llvm-commits mailing list