Some passes might duplicate calls to llvm.dbg.declare causing
duplicated, identical fragment declarations which currently cause an
assertion might is meant to catch erroneous overlapping fragment
declarations. But for declarations that are simply duplicated we can be
a bit more lenient and just ignore the duplicates.
PR33157 was fixed by a similar change for non-fragment declarations in
r305244.
This strips out true duplicates (which was the *intention* behind the old code). The old code also deleted all but the first non-fragment entry.
This only affects inputs that are arguably already broken (two non-fragment entries for the same variable at different frame indices), so I don't think the old behavior is worth keeping.