The current strategy LICM uses when sinking for debuginfo is that picking the debug location of one of the uses.
This causes stepping to be wrong sometimes, as in the example in https://bugs.llvm.org/show_bug.cgi?id=45523 / rdar://problem/61750950 where lldb steps on dead code.
This patch introduces a generalization of getMergedLocation(), getMergedLocations(), that operates on a vector of locations instead of two, and try to merge all them together.
The API is used in LICM to try making the locations more correct
Could this be an ArrayRef or MutableArrayRef?