12cab237bSDimitry Andric //===- llvm/CodeGen/MachineModuleInfoImpls.cpp ----------------------------===//
2f22ef01cSRoman Divacky //
3f22ef01cSRoman Divacky //                     The LLVM Compiler Infrastructure
4f22ef01cSRoman Divacky //
5f22ef01cSRoman Divacky // This file is distributed under the University of Illinois Open Source
6f22ef01cSRoman Divacky // License. See LICENSE.TXT for details.
7f22ef01cSRoman Divacky //
8f22ef01cSRoman Divacky //===----------------------------------------------------------------------===//
9f22ef01cSRoman Divacky //
10f22ef01cSRoman Divacky // This file implements object-file format specific implementations of
11f22ef01cSRoman Divacky // MachineModuleInfoImpl.
12f22ef01cSRoman Divacky //
13f22ef01cSRoman Divacky //===----------------------------------------------------------------------===//
14f22ef01cSRoman Divacky 
15f22ef01cSRoman Divacky #include "llvm/CodeGen/MachineModuleInfoImpls.h"
162cab237bSDimitry Andric #include "llvm/ADT/DenseMap.h"
17f22ef01cSRoman Divacky #include "llvm/MC/MCSymbol.h"
182cab237bSDimitry Andric 
19f22ef01cSRoman Divacky using namespace llvm;
20f22ef01cSRoman Divacky 
21f22ef01cSRoman Divacky //===----------------------------------------------------------------------===//
22f22ef01cSRoman Divacky // MachineModuleInfoMachO
23f22ef01cSRoman Divacky //===----------------------------------------------------------------------===//
24f22ef01cSRoman Divacky 
25f22ef01cSRoman Divacky // Out of line virtual method.
263861d79fSDimitry Andric void MachineModuleInfoMachO::anchor() {}
273861d79fSDimitry Andric void MachineModuleInfoELF::anchor() {}
28f22ef01cSRoman Divacky 
292cab237bSDimitry Andric using PairTy = std::pair<MCSymbol *, MachineModuleInfoImpl::StubValueTy>;
302cab237bSDimitry Andric static int SortSymbolPair(const PairTy *LHS, const PairTy *RHS) {
312cab237bSDimitry Andric   return LHS->first->getName().compare(RHS->first->getName());
32f22ef01cSRoman Divacky }
33f22ef01cSRoman Divacky 
34ff0cc061SDimitry Andric MachineModuleInfoImpl::SymbolListTy MachineModuleInfoImpl::getSortedStubs(
35ff0cc061SDimitry Andric     DenseMap<MCSymbol *, MachineModuleInfoImpl::StubValueTy> &Map) {
36f22ef01cSRoman Divacky   MachineModuleInfoImpl::SymbolListTy List(Map.begin(), Map.end());
37f22ef01cSRoman Divacky 
382cab237bSDimitry Andric   array_pod_sort(List.begin(), List.end(), SortSymbolPair);
39ff0cc061SDimitry Andric 
40ff0cc061SDimitry Andric   Map.clear();
41f22ef01cSRoman Divacky   return List;
42f22ef01cSRoman Divacky }
43