The SalvageDebugInfoForDbgValues() function is exposed and used externally only in InstCombine. Refactor InstCombine to instead use SalvageDebugInfo() and keep SalvageDebugInfoForDbgValues() internal.
However, this relies on the internal behaviour of SalvageDbgInfo(), specifically the way findDbgValues() behaves when it encounters undef. This patch builds on top of D78369, which also simplifies the exposed debuginfo salvaging functions.
The guard in InstructionCombining.cpp:3477
if(!DIIClones.empty())
is used to prevent a salvage occurring in a scenario not possible in the current implementation. Without this a salvage can be executed without having cloned any Users. Doing so may not be incorrect, but it certainly would be different to the current behaviour.
nit, 'arguments of' -> 'dbg.declare arguments'?