[PATCH] D156545: [DebugInfo][InstrRef] Don't produce over-sized DW_OP_deref_size expressions for very wide stack spills

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 31 09:52:00 PDT 2023


dblaikie added inline comments.


================
Comment at: llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp:1177-1178
+  if (DerefSizeInBytes > PointerSizeBytes) {
+    // This would be illegal DWARF. Perhaps the output will identify a
+    // flawed location, but it'll at least be legal output.
+    return false;
----------------
Could you clarify/rephrase the "output will identify a flawed location" - I don't understand what you mean by that & I'd have expected the failure here to be "absence of a location" rather than possibly incorrect locations ("flawed" I assume means "incorrect"?)


================
Comment at: llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_deref_size_too_big.mir:6
+# exceeds the size of an address (64 bits). We should produce a plain
+# DW_OP_deref instead, as that's a legal output.
+#
----------------
How would a plain DW_OP_deref work here - it'd still only be word-wide, right - so 64 bits, but the low 64 bit of a 128bit floating point value presumably isn't a valid floating point value, right?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D156545



More information about the llvm-commits mailing list