This patch continues implementing the ISel support for multi-location-operand debug values by reading and processing dbg.values that use DIArgList. This patch does not add support for producing DBG_VALUE_LIST; that is added in a separate patch in this stack.
The most substantial change is naturally in handleDebugValue and some of the functions that it calls. Outside of this, salvageDebugInfo and transferDbgValues have been modified to replace individual operands instead of the entire value; dangling debug info for variadic debug values is not currently supported (but may be added in a later patch).
It would be nice if we can find a less overloaded term than "locations". Perhaps just call them straight DW_OP_LLVM_args?