diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-31 21:39:55 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-31 21:39:55 +0000 |
commit | 7a01e959156ba4e0a15b45a1f153f67d1646c0a5 (patch) | |
tree | 07694012d3f7fb9102628b95171736a074e551ed | |
parent | 5d0bf1bc6fc5d1d049adb98f95cda3e4737abaf2 (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.h | 16 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfException.cpp | 2 | ||||
-rw-r--r-- | lib/Target/TargetAsmInfo.cpp | 3 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetAsmInfo.cpp | 52 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetAsmInfo.h | 9 |
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; }; |