This patch documents that LLVM does not describe all changes in variable locations during the prologue and the epilogue. The debugger doesn't / shouldn't step through that portion of the function anyway, and describing every location through such stages would bloat location lists.
Perform some minor cleanup at the same time,
- Fix an enumerated list
- Document that dbg.declare intrinsics have their variable location recorded in a MachineFunction table, not with DBG_VALUE meta-insts
- Adds frame-indexes to the list of things that can be operands to DBG_VALUEs.
~
This is a result of discussion in D61940, note that my understanding of the rationale behind LLVMs current behaviour is mostly guided by [0].