[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