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