diff --git a/docs/WritingAnLLVMBackend.html b/docs/WritingAnLLVMBackend.html
index 388e706046d..29dc1127c57 100644
--- a/docs/WritingAnLLVMBackend.html
+++ b/docs/WritingAnLLVMBackend.html
@@ -2080,8 +2080,8 @@ SparcTargetAsmInfo::SparcTargetAsmInfo(const SparcTargetMachine &TM) {
The X86 assembly printer implementation (X86TargetAsmInfo) is an
-example where the target specific TargetAsmInfo class uses overridden
-methods: ExpandInlineAsm and PreferredEHDataFormat.
+example where the target specific TargetAsmInfo class uses an
+overridden methods: ExpandInlineAsm.
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h
index 5574ad5bc6b..958a701cefc 100644
--- a/include/llvm/Target/TargetAsmInfo.h
+++ b/include/llvm/Target/TargetAsmInfo.h
@@ -383,11 +383,6 @@ namespace llvm {
/// length.
virtual unsigned getInlineAsmLength(const char *Str) const;
- /// PreferredEHDataFormat - This hook allows the target to select data
- /// format used for encoding pointers in exception handling data.
- virtual unsigned PreferredEHDataFormat() const;
-
-
/// getSLEB128Size - Compute the number of bytes required for a signed
/// leb128 value.
static unsigned getSLEB128Size(int Value);
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp
index e961f2ad74f..cb835e630f0 100644
--- a/lib/Target/TargetAsmInfo.cpp
+++ b/lib/Target/TargetAsmInfo.cpp
@@ -140,10 +140,6 @@ unsigned TargetAsmInfo::getInlineAsmLength(const char *Str) const {
return Length;
}
-unsigned TargetAsmInfo::PreferredEHDataFormat() const {
- return dwarf::DW_EH_PE_absptr;
-}
-
unsigned TargetAsmInfo::getULEB128Size(unsigned Value) {
unsigned Size = 0;
do {
diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp
index 4c9030845a0..db9cf905c4f 100644
--- a/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -86,14 +86,6 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
".section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support";
}
-unsigned X86DarwinTargetAsmInfo::PreferredEHDataFormat() const {
- const X86Subtarget *Subtarget = &TM.getSubtarget();
- if (Subtarget->getDarwinVers() > 9)
- return DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4;
-
- return DW_EH_PE_absptr;
-}
-
const char *
X86DarwinTargetAsmInfo::getEHGlobalPrefix() const {
const X86Subtarget* Subtarget = &TM.getSubtarget();
@@ -138,70 +130,6 @@ X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) :
NonexecutableStackDirective = "\t.section\t.note.GNU-stack,\"\",@progbits";
}
-unsigned
-X86ELFTargetAsmInfo::PreferredEHDataFormat() const {
- CodeModel::Model CM = TM.getCodeModel();
- bool is64Bit = TM.getSubtarget().is64Bit();
-
- if (TM.getRelocationModel() == Reloc::PIC_) {
- unsigned Format = 0;
-
- if (!is64Bit)
- // 32 bit targets always encode pointers as 4 bytes
- Format = DW_EH_PE_sdata4;
- else {
- // 64 bit targets encode pointers in 4 bytes iff:
- // - code model is small OR
- // - code model is medium and we're emitting externally visible symbols
- // or any code symbols
- if (CM == CodeModel::Small || CM == CodeModel::Medium)
- Format = DW_EH_PE_sdata4;
- else
- Format = DW_EH_PE_sdata8;
- }
-
- Format |= DW_EH_PE_indirect;
- return (Format | DW_EH_PE_pcrel);
- }
-
- if (is64Bit && CM == CodeModel::Small)
- return DW_EH_PE_udata4;
- return DW_EH_PE_absptr;
-}
-
-
-unsigned
-X86COFFTargetAsmInfo::PreferredEHDataFormat() const {
- CodeModel::Model CM = TM.getCodeModel();
- bool is64Bit = TM.getSubtarget().is64Bit();
-
- if (TM.getRelocationModel() == Reloc::PIC_) {
- unsigned Format = 0;
-
- if (!is64Bit)
- // 32 bit targets always encode pointers as 4 bytes
- Format = DW_EH_PE_sdata4;
- else {
- // 64 bit targets encode pointers in 4 bytes iff:
- // - code model is small OR
- // - code model is medium and we're emitting externally visible symbols
- // or any code symbols
- if (CM == CodeModel::Small || CM == CodeModel::Medium)
- Format = DW_EH_PE_sdata4;
- else
- Format = DW_EH_PE_sdata8;
- }
-
- Format |= DW_EH_PE_indirect;
- return (Format | DW_EH_PE_pcrel);
- }
-
- if (is64Bit && CM == CodeModel::Small)
- return DW_EH_PE_udata4;
- return DW_EH_PE_absptr;
-}
-
-
X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM):
X86TargetAsmInfo(TM) {
diff --git a/lib/Target/X86/X86TargetAsmInfo.h b/lib/Target/X86/X86TargetAsmInfo.h
index 3cc027185c9..f7113b3e5ed 100644
--- a/lib/Target/X86/X86TargetAsmInfo.h
+++ b/lib/Target/X86/X86TargetAsmInfo.h
@@ -37,21 +37,14 @@ namespace llvm {
struct X86DarwinTargetAsmInfo : public X86TargetAsmInfo {
explicit X86DarwinTargetAsmInfo(const X86TargetMachine &TM);
- virtual unsigned PreferredEHDataFormat() const;
virtual const char *getEHGlobalPrefix() const;
};
struct X86ELFTargetAsmInfo : public X86TargetAsmInfo {
explicit X86ELFTargetAsmInfo(const X86TargetMachine &TM);
- virtual unsigned PreferredEHDataFormat() const;
};
- struct X86COFFTargetAsmInfo : public X86TargetAsmInfo {
- explicit X86COFFTargetAsmInfo(const X86TargetMachine &TM) :
- X86TargetAsmInfo(TM) {}
- virtual unsigned PreferredEHDataFormat() const;
- };
-
+ typedef X86TargetAsmInfo X86COFFTargetAsmInfo;
struct X86WinTargetAsmInfo : public X86TargetAsmInfo {
explicit X86WinTargetAsmInfo(const X86TargetMachine &TM);