dblaikie added a comment. In D135488#3854624 <https://reviews.llvm.org/D135488#3854624>, @nickdesaulniers wrote:
> Playing around with `llvm-dwarfdump` today, I think I found an interesting > example: > > Consider the following DWARF DIE: > > 0x00017e5e: DW_TAG_variable > DW_AT_location (0x00002144: > [0x00000000000007c4, 0x00000000000007c8): > DW_OP_reg8 W8 > [0x00000000000007c8, 0x00000000000007d8): > DW_OP_breg31 WSP+48 > [0x00000000000007d8, 0x00000000000007e8): > DW_OP_lit0, DW_OP_stack_value) > DW_AT_abstract_origin (0x00016776 "sp_el0") > > How I read this: `sp_el0` is in `w8` while the program counter is from 0x7c4 > until 0x7c8 (exclusive, based on looking at the disassembly), at which point > it's spilled to `wsp+48` until the program counter reaches 0x7e8 at which > point (this gets hazy, but https://dwarfstd.org/ShowIssue.php?issue=100831.1 > is worth a read) the value is "rematerializable?" > > Though I also see DW_AT_location attributes getting pretty crazy. Yep, in terms of DWARF that all sounds correct. "Rematerializable" Means, in this case, in the range `[7d8, 7e8)` the value of the variable is zero - there's no storage (the zero isn't in a register or in memory), but the value is zero. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135488/new/ https://reviews.llvm.org/D135488 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits