[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