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 | 63779b8d5766900a361857dd4927e1232c184bee (patch) | |
tree | 1f60d3b1c7c488bc8901e1acdf616c0e28586da2 /llvm/lib/Target | |
parent | d65ab045e84c265e39e5cab9606c4489c9d21304 (diff) | |
download | bcm5719-llvm-63779b8d5766900a361857dd4927e1232c184bee.tar.gz bcm5719-llvm-63779b8d5766900a361857dd4927e1232c184bee.zip |
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.
llvm-svn: 77736
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/TargetAsmInfo.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86TargetAsmInfo.cpp | 52 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86TargetAsmInfo.h | 9 |
3 files changed, 18 insertions, 46 deletions
diff --git a/llvm/lib/Target/TargetAsmInfo.cpp b/llvm/lib/Target/TargetAsmInfo.cpp index e71bd01aae0..4c6100ba882 100644 --- a/llvm/lib/Target/TargetAsmInfo.cpp +++ b/llvm/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/llvm/lib/Target/X86/X86TargetAsmInfo.cpp b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp index 3223f3cb72f..09adc433e74 100644 --- a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp +++ b/llvm/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/llvm/lib/Target/X86/X86TargetAsmInfo.h b/llvm/lib/Target/X86/X86TargetAsmInfo.h index 9b4e8092ae4..3cc027185c9 100644 --- a/llvm/lib/Target/X86/X86TargetAsmInfo.h +++ b/llvm/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; }; |