[PATCH] D70676: [DebugInfo] Don't repeatedly created undef DBG_VALUEs during machine-sinking
Jeremy Morse via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 11 06:36:35 PST 2019
jmorse added a comment.
> I tried out D71279 <https://reviews.llvm.org/D71279> and D71283 <https://reviews.llvm.org/D71283> individually and they both seem to fix the problem I saw. I haven't done very wide testing, but the mir-reproducer I had passes. Nice!
Cool; I think the former might mask the latter, I'll land the first patch when this (D70676 <https://reviews.llvm.org/D70676>) is back in tree...
Hans wrote:
> We're seeing non-determinism in Chromium builds after this commit
Thanks for the detailed reproducer (and strong shell-fu); I've replicated this locally now, cheers. Fascinatingly, the output difference seems to be a change in the layout of location lists, not their meaning. From llvm-dwarfdump -debug-loc:
[0x0000000000000135, 0x000000000000014b): DW_OP_breg14 R14+400, DW_OP_stack_value
0x00014038:
+ [0x0000000000000152, 0x0000000000000171): DW_OP_reg3 RBX
+
+0x0001406b:
[0x0000000000000152, 0x00000000000001b1): DW_OP_reg3 RBX
[0x0000000000000281, 0x00000000000002a0): DW_OP_reg3 RBX
-0x0001407e:
+0x000140b1:
[0x0000000000000152, 0x00000000000001b1): DW_OP_reg3 RBX
[0x0000000000000281, 0x00000000000002a0): DW_OP_reg3 RBX
-0x000140c4:
- [0x0000000000000152, 0x0000000000000171): DW_OP_reg3 RBX
-
0x000140f7:
[0x0000000000000163, 0x0000000000000171): DW_OP_reg3 RBX
That's a location entry for RBX shifting down two location list entries. It's not clear to me why this is happening; I'll dig further.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70676/new/
https://reviews.llvm.org/D70676
More information about the llvm-commits
mailing list