summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineModuleInfo.h
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-03-10 22:34:10 +0000
committerBill Wendling <isanbard@gmail.com>2010-03-10 22:34:10 +0000
commitcebae36f57456fe6b0e13726acd1e0250654f02d (patch)
tree47f8ec392dad6828e226a9e33efa850b4491893c /include/llvm/CodeGen/MachineModuleInfo.h
parentbfdf7f38523bd38ae0538861a2bfd8bdc46e5c33 (diff)
downloadllvm-cebae36f57456fe6b0e13726acd1e0250654f02d.tar.gz
llvm-cebae36f57456fe6b0e13726acd1e0250654f02d.tar.bz2
llvm-cebae36f57456fe6b0e13726acd1e0250654f02d.tar.xz
Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that
indicates that an MCSymbol is external or not. (It's true if it's external.) This will be used to specify the correct information to add to non-lazy pointers. That will be explained further when this bit is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98199 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineModuleInfo.h')
-rw-r--r--include/llvm/CodeGen/MachineModuleInfo.h26
1 files changed, 12 insertions, 14 deletions
diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h
index fff8e83354..1453c1e231 100644
--- a/include/llvm/CodeGen/MachineModuleInfo.h
+++ b/include/llvm/CodeGen/MachineModuleInfo.h
@@ -31,48 +31,46 @@
#ifndef LLVM_CODEGEN_MACHINEMODULEINFO_H
#define LLVM_CODEGEN_MACHINEMODULEINFO_H
-#include "llvm/Support/Dwarf.h"
-#include "llvm/System/DataTypes.h"
-#include "llvm/ADT/SmallVector.h"
+#include "llvm/GlobalValue.h"
+#include "llvm/Pass.h"
+#include "llvm/Metadata.h"
#include "llvm/ADT/DenseMap.h"
-#include "llvm/ADT/UniqueVector.h"
+#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
+#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
+#include "llvm/ADT/UniqueVector.h"
#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/GlobalValue.h"
-#include "llvm/Pass.h"
-#include "llvm/Metadata.h"
+#include "llvm/Support/Dwarf.h"
#include "llvm/Support/ValueHandle.h"
+#include "llvm/System/DataTypes.h"
namespace llvm {
//===----------------------------------------------------------------------===//
// Forward declarations.
class Constant;
+class GlobalVariable;
class MCSymbol;
class MDNode;
-class GlobalVariable;
class MachineBasicBlock;
class MachineFunction;
class Module;
class PointerType;
class StructType;
-
/// MachineModuleInfoImpl - This class can be derived from and used by targets
/// to hold private target-specific information for each Module. Objects of
/// type are accessed/created with MMI::getInfo and destroyed when the
/// MachineModuleInfo is destroyed.
class MachineModuleInfoImpl {
public:
+ typedef PointerIntPair<MCSymbol*, 1, bool> StubValueTy;
virtual ~MachineModuleInfoImpl();
-
- typedef std::vector<std::pair<MCSymbol*, MCSymbol*> >
- SymbolListTy;
+ typedef std::vector<std::pair<MCSymbol*, StubValueTy> > SymbolListTy;
protected:
- static SymbolListTy
- GetSortedStubs(const DenseMap<MCSymbol*, MCSymbol*> &Map);
+ static SymbolListTy GetSortedStubs(const DenseMap<MCSymbol*, StubValueTy>&);
};