43 std::vector<std::pair<SymbolID, llvm::ArrayRef<Ref>>> Result;
46 std::vector<std::pair<SymbolID, const Ref *>> Flat;
47 Flat.reserve(Entries.size());
48 for (
const Entry &E : Entries)
49 Flat.emplace_back(E.Symbol, &E.Reference);
51 llvm::sort(Flat, llvm::less_first());
52 std::vector<Ref> Refs;
54 for (
auto I = Flat.begin(), End = Flat.end(); I != End;) {
58 Refs.push_back(*I->second);
60 }
while (I != End && I->first == Sym);
62 Result.emplace_back(Sym, llvm::ArrayRef<Ref>(Refs).copy(Arena));
64 return RefSlab(std::move(Result), std::move(Arena), Entries.size());