1
//===-- llvm/CodeGen/MachineModuleInfoImpls.cpp ---------------------------===//
3
// The LLVM Compiler Infrastructure
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
8
//===----------------------------------------------------------------------===//
10
// This file implements object-file format specific implementations of
11
// MachineModuleInfoImpl.
13
//===----------------------------------------------------------------------===//
15
#include "llvm/CodeGen/MachineModuleInfoImpls.h"
16
#include "llvm/MC/MCSymbol.h"
19
//===----------------------------------------------------------------------===//
20
// MachineModuleInfoMachO
21
//===----------------------------------------------------------------------===//
23
// Out of line virtual method.
24
void MachineModuleInfoMachO::Anchor() {}
25
void MachineModuleInfoELF::Anchor() {}
27
static int SortSymbolPair(const void *LHS, const void *RHS) {
28
const MCSymbol *LHSS =
29
((const std::pair<MCSymbol*, MCSymbol*>*)LHS)->first;
30
const MCSymbol *RHSS =
31
((const std::pair<MCSymbol*, MCSymbol*>*)RHS)->first;
32
return LHSS->getName().compare(RHSS->getName());
35
/// GetSortedStubs - Return the entries from a DenseMap in a deterministic
37
MachineModuleInfoImpl::SymbolListTy
38
MachineModuleInfoImpl::GetSortedStubs(const DenseMap<MCSymbol*,
40
MachineModuleInfoImpl::SymbolListTy List(Map.begin(), Map.end());
43
qsort(&List[0], List.size(), sizeof(List[0]), SortSymbolPair);