summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-09-16 06:03:48 +0000
committerChris Lattner <sabre@nondot.org>2009-09-16 06:03:48 +0000
commitf3f54ffc8910ba7f09b1f855babdf9db1965865b (patch)
treeeb02522e81a86dac35135392176642a388236fc4 /llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
parent6879beda08ae565733e35fc41e8ed660517b0e21 (diff)
downloadbcm5719-llvm-f3f54ffc8910ba7f09b1f855babdf9db1965865b.tar.gz
bcm5719-llvm-f3f54ffc8910ba7f09b1f855babdf9db1965865b.zip
add a new MachineModuleInfoMachO class, which is the per-module
stuff common across all macho targets. llvm-svn: 82018
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleInfoImpls.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineModuleInfoImpls.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp b/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
new file mode 100644
index 00000000000..10de1deec4e
--- /dev/null
+++ b/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
@@ -0,0 +1,44 @@
+//===-- llvm/CodeGen/MachineModuleInfoImpls.cpp ---------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements object-file format specific implementations of
+// MachineModuleInfoImpl.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/CodeGen/MachineModuleInfoImpls.h"
+#include "llvm/MC/MCSymbol.h"
+using namespace llvm;
+
+//===----------------------------------------------------------------------===//
+// MachineModuleInfoMachO
+//===----------------------------------------------------------------------===//
+
+// Out of line virtual method.
+void MachineModuleInfoMachO::Anchor() {}
+
+
+static int SortSymbolPair(const void *LHS, const void *RHS) {
+ const MCSymbol *LHSS =
+ ((const std::pair<const MCSymbol*, const MCSymbol*>*)LHS)->first;
+ const MCSymbol *RHSS =
+ ((const std::pair<const MCSymbol*, const MCSymbol*>*)RHS)->first;
+ return LHSS->getName().compare(RHSS->getName());
+}
+
+/// GetSortedStubs - Return the entries from a DenseMap in a deterministic
+/// sorted orer.
+MachineModuleInfoMachO::SymbolListTy
+MachineModuleInfoMachO::GetSortedStubs(const DenseMap<const MCSymbol*,
+ const MCSymbol*> &Map) {
+ MachineModuleInfoMachO::SymbolListTy List(Map.begin(), Map.end());
+ qsort(&List[0], List.size(), sizeof(List[0]), SortSymbolPair);
+ return List;
+}
+
OpenPOWER on IntegriCloud