This patch fixes two issues observed upon applying D91722 to current main:
The first change has been moved to a separate patch, D99423.
The second issue is that LoopStrengthReduce, when trying to "repair" undef debug values by replacing them with equal values, must first restore the original location metadata. Without variadic debug values, no active restore was necessary, because you would always have a single undef location operand which would be replaced; because of the updated salvaging, it is now possible for the number of operands to change. This causes errors because we cannot identify which post-salvage operands map to the original operands. Restoring the original location metadata before attempting to repair it removes this issue.
To confirm my understanding: this swapping of key/value is effectively NFC, right?