aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-07-31 21:39:55 +0000
committerChris Lattner <sabre@nondot.org>2009-07-31 21:39:55 +0000
commit7a01e959156ba4e0a15b45a1f153f67d1646c0a5 (patch)
tree07694012d3f7fb9102628b95171736a074e551ed
parent5d0bf1bc6fc5d1d049adb98f95cda3e4737abaf2 (diff)
PreferredEHDataFormat is always call with data and global, but this whole
thing is #if0'd out anyway. Just simplify the code by reducing the interface. Not deleting this is essential for Bill's continuing happiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77736 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Target/TargetAsmInfo.h16
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfException.cpp2
-rw-r--r--lib/Target/TargetAsmInfo.cpp3
-rw-r--r--lib/Target/X86/X86TargetAsmInfo.cpp52
-rw-r--r--lib/Target/X86/X86TargetAsmInfo.h9
5 files changed, 21 insertions, 61 deletions
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h
index ad4f431fd6..250b69ba88 100644
--- a/include/llvm/Target/TargetAsmInfo.h
+++ b/include/llvm/Target/TargetAsmInfo.h
@@ -24,15 +24,6 @@ namespace llvm {
template <typename T> class SmallVectorImpl;
class TargetMachine;
- // DWARF encoding query type
- namespace DwarfEncoding {
- enum Target {
- Data = 0,
- CodeLabels = 1,
- Functions = 2
- };
- }
-
/// TargetAsmInfo - This class is intended to be used as a base class for asm
/// properties and features specific to the target.
class TargetAsmInfo {
@@ -429,11 +420,8 @@ namespace llvm {
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. Reason is
- /// 0 for data, 1 for code labels, 2 for function pointers. Global is true
- /// if the symbol can be relocated.
- virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const;
+ /// format used for encoding pointers in exception handling data.
+ virtual unsigned PreferredEHDataFormat() const;
/// getSLEB128Size - Compute the number of bytes required for a signed
diff --git a/lib/CodeGen/AsmPrinter/DwarfException.cpp b/lib/CodeGen/AsmPrinter/DwarfException.cpp
index 49512a3bb4..a05bbb2b6f 100644
--- a/lib/CodeGen/AsmPrinter/DwarfException.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfException.cpp
@@ -557,7 +557,7 @@ void DwarfException::EmitExceptionTable() {
#if 0
// FIXME: This should default to what the system wants, not just "absptr".
if (!TypeInfos.empty() || !FilterIds.empty()) {
- Asm->EmitInt8(TAI->PreferredEHDataFormat(DwarfEncoding::Data, true));
+ Asm->EmitInt8(TAI->PreferredEHDataFormat());
// FIXME: The comment here should correspond with what PreferredEHDataFormat
// returned.
Asm->EOL("TType format (DW_EH_PE_xxxxx)");
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp
index e71bd01aae..4c6100ba88 100644
--- a/lib/Target/TargetAsmInfo.cpp
+++ b/lib/Target/TargetAsmInfo.cpp
@@ -148,8 +148,7 @@ unsigned TargetAsmInfo::getInlineAsmLength(const char *Str) const {
return Length;
}
-unsigned TargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const {
+unsigned TargetAsmInfo::PreferredEHDataFormat() const {
return dwarf::DW_EH_PE_absptr;
}
diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp
index 3223f3cb72..09adc433e7 100644
--- a/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -91,19 +91,10 @@ X86DarwinTargetAsmInfo::X86DarwinTargetAsmInfo(const X86TargetMachine &TM):
DwarfExceptionSection = ".section __DATA,__gcc_except_tab";
}
-unsigned
-X86DarwinTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const {
+unsigned X86DarwinTargetAsmInfo::PreferredEHDataFormat() const {
const X86Subtarget *Subtarget = &TM.getSubtarget<X86Subtarget>();
-
- if (Subtarget->getDarwinVers() > 9) {
- if ((Reason == DwarfEncoding::Data || Reason == DwarfEncoding::Functions)
- && Global)
- return DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4;
-
- if (Reason == DwarfEncoding::CodeLabels || !Global)
- return DW_EH_PE_pcrel;
- }
+ if (Subtarget->getDarwinVers() > 9)
+ return DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4;
return DW_EH_PE_absptr;
}
@@ -155,8 +146,7 @@ X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) :
}
unsigned
-X86ELFTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const {
+X86ELFTargetAsmInfo::PreferredEHDataFormat() const {
CodeModel::Model CM = TM.getCodeModel();
bool is64Bit = TM.getSubtarget<X86Subtarget>().is64Bit();
@@ -171,32 +161,24 @@ X86ELFTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
// - 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 && (Global ||
- Reason != DwarfEncoding::Data)))
+ if (CM == CodeModel::Small || CM == CodeModel::Medium)
Format = DW_EH_PE_sdata4;
else
Format = DW_EH_PE_sdata8;
}
- if (Global)
- Format |= DW_EH_PE_indirect;
-
+ Format |= DW_EH_PE_indirect;
return (Format | DW_EH_PE_pcrel);
- } else {
- if (is64Bit &&
- (CM == CodeModel::Small ||
- (CM == CodeModel::Medium && Reason != DwarfEncoding::Data)))
- return DW_EH_PE_udata4;
- else
- return DW_EH_PE_absptr;
}
+
+ if (is64Bit && CM == CodeModel::Small)
+ return DW_EH_PE_udata4;
+ return DW_EH_PE_absptr;
}
unsigned
-X86COFFTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const {
+X86COFFTargetAsmInfo::PreferredEHDataFormat() const {
CodeModel::Model CM = TM.getCodeModel();
bool is64Bit = TM.getSubtarget<X86Subtarget>().is64Bit();
@@ -211,23 +193,17 @@ X86COFFTargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason,
// - 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 && (Global ||
- Reason != DwarfEncoding::Data)))
+ if (CM == CodeModel::Small || CM == CodeModel::Medium)
Format = DW_EH_PE_sdata4;
else
Format = DW_EH_PE_sdata8;
}
- if (Global)
- Format |= DW_EH_PE_indirect;
-
+ Format |= DW_EH_PE_indirect;
return (Format | DW_EH_PE_pcrel);
}
- if (is64Bit &&
- (CM == CodeModel::Small ||
- (CM == CodeModel::Medium && Reason != DwarfEncoding::Data)))
+ if (is64Bit && CM == CodeModel::Small)
return DW_EH_PE_udata4;
return DW_EH_PE_absptr;
}
diff --git a/lib/Target/X86/X86TargetAsmInfo.h b/lib/Target/X86/X86TargetAsmInfo.h
index 9b4e8092ae..3cc027185c 100644
--- a/lib/Target/X86/X86TargetAsmInfo.h
+++ b/lib/Target/X86/X86TargetAsmInfo.h
@@ -37,22 +37,19 @@ namespace llvm {
struct X86DarwinTargetAsmInfo : public X86TargetAsmInfo<DarwinTargetAsmInfo> {
explicit X86DarwinTargetAsmInfo(const X86TargetMachine &TM);
- virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const;
+ virtual unsigned PreferredEHDataFormat() const;
virtual const char *getEHGlobalPrefix() const;
};
struct X86ELFTargetAsmInfo : public X86TargetAsmInfo<ELFTargetAsmInfo> {
explicit X86ELFTargetAsmInfo(const X86TargetMachine &TM);
- virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const;
+ virtual unsigned PreferredEHDataFormat() const;
};
struct X86COFFTargetAsmInfo : public X86TargetAsmInfo<COFFTargetAsmInfo> {
explicit X86COFFTargetAsmInfo(const X86TargetMachine &TM) :
X86TargetAsmInfo<COFFTargetAsmInfo>(TM) {}
- virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason,
- bool Global) const;
+ virtual unsigned PreferredEHDataFormat() const;
};