[mach-o] remove __compact_unwind atoms once __unwind_info has been generated

The job of the CompactUnwind pass is to turn __compact_unwind data (and
__eh_frame) into the compressed final form in __unwind_info. After it's done,
the original atoms are no longer relevant and should be deleted (they cause
problems during actual execution, quite apart from the fact that they're not
needed).

llvm-svn: 221301
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp
index 1657866..e4a1b53 100644
--- a/lld/lib/Core/Resolver.cpp
+++ b/lld/lib/Core/Resolver.cpp
@@ -445,6 +445,13 @@
       _definedAtoms._atoms.begin(), _definedAtoms._atoms.end());
 }
 
+void Resolver::MergedFile::removeDefinedAtomsIf(
+    std::function<bool(const DefinedAtom *)> pred) {
+  auto &atoms = _definedAtoms._atoms;
+  auto newEnd = std::remove_if(atoms.begin(), atoms.end(), pred);
+  atoms.erase(newEnd, atoms.end());
+}
+
 void Resolver::MergedFile::addAtoms(std::vector<const Atom *> &all) {
   ScopedTask task(getDefaultDomain(), "addAtoms");
   DEBUG_WITH_TYPE("resolver", llvm::dbgs() << "Resolver final atom list:\n");