[llvm-commits] [llvm] r98564 - in /llvm/trunk/lib/Target/X86: X86ISelLowering.cpp X86TargetObjectFile.cpp X86TargetObjectFile.h

Chris Lattner clattner at apple.com
Mon Mar 15 12:54:18 PDT 2010


great! Can this move up to TargetLoweringObjectFileMachO now?

-Chris

On Mar 15, 2010, at 12:04 PM, Bill Wendling wrote:

> Author: void
> Date: Mon Mar 15 14:04:37 2010
> New Revision: 98564
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=98564&view=rev
> Log:
> Place the LSDA into the TEXT section for x86 Darwin. If the global it's pointing
> to is local to the translation unit, we need to place fill the value of that
> symbol into the non-lazy pointer.
> 
> This should conclude all Darwin changes for placing the LSDA into the TEXT
> section. There is some cleanup to do. I.e., there's no longer a special need for
> target-specific code here. But that can come later.
> 
> Modified:
>    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
>    llvm/trunk/lib/Target/X86/X86TargetObjectFile.cpp
>    llvm/trunk/lib/Target/X86/X86TargetObjectFile.h
> 
> Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=98564&r1=98563&r2=98564&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Mon Mar 15 14:04:37 2010
> @@ -70,53 +70,14 @@
> static SDValue getMOVL(SelectionDAG &DAG, DebugLoc dl, EVT VT, SDValue V1,
>                        SDValue V2);
> 
> -// FIXME: This is for a test.
> -static cl::opt<bool>
> -EnableX86EHTest("enable-x86-eh-test", cl::Hidden);
> -
> -namespace llvm {
> -  class X86_test_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
> -  public:
> -    virtual void Initialize(MCContext &Ctx, const TargetMachine &TM) {
> -      TargetLoweringObjectFileMachO::Initialize(Ctx, TM);
> -
> -      // Exception Handling.
> -      LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
> -                                    SectionKind::getReadOnlyWithRel());
> -    }
> -
> -    virtual unsigned getTTypeEncoding() const {
> -      return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
> -    }
> -  };
> -
> -  class X8664_test_MachoTargetObjectFile : public X8664_MachoTargetObjectFile {
> -  public:
> -    virtual void Initialize(MCContext &Ctx, const TargetMachine &TM) {
> -      TargetLoweringObjectFileMachO::Initialize(Ctx, TM);
> -
> -      // Exception Handling.
> -      LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
> -                                    SectionKind::getReadOnlyWithRel());
> -    }
> -
> -    virtual unsigned getTTypeEncoding() const {
> -      return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
> -    }
> -  };
> -}
> -
> static TargetLoweringObjectFile *createTLOF(X86TargetMachine &TM) {
>   switch (TM.getSubtarget<X86Subtarget>().TargetType) {
>   default: llvm_unreachable("unknown subtarget type");
>   case X86Subtarget::isDarwin:
> -    // FIXME: This is for an EH test.
> -    if (EnableX86EHTest) {
> -      if (TM.getSubtarget<X86Subtarget>().is64Bit())
> -        return new X8664_test_MachoTargetObjectFile();
> -      else
> -        return new X86_test_MachoTargetObjectFile();
> -    }
> +    if (TM.getSubtarget<X86Subtarget>().is64Bit())
> +      return new X8664_MachoTargetObjectFile();
> +    else
> +      return new X86_MachoTargetObjectFile();
> 
>     if (TM.getSubtarget<X86Subtarget>().is64Bit())
>       return new X8664_MachoTargetObjectFile();
> 
> Modified: llvm/trunk/lib/Target/X86/X86TargetObjectFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetObjectFile.cpp?rev=98564&r1=98563&r2=98564&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86TargetObjectFile.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86TargetObjectFile.cpp Mon Mar 15 14:04:37 2010
> @@ -12,12 +12,26 @@
> #include "X86TargetMachine.h"
> #include "llvm/CodeGen/MachineModuleInfoImpls.h"
> #include "llvm/MC/MCContext.h"
> +#include "llvm/MC/MCSectionMachO.h"
> #include "llvm/Target/Mangler.h"
> #include "llvm/ADT/SmallString.h"
> #include "llvm/Support/Dwarf.h"
> using namespace llvm;
> using namespace dwarf;
> 
> +void X86_MachoTargetObjectFile::Initialize(MCContext &Ctx,
> +                                           const TargetMachine &TM) {
> +  TargetLoweringObjectFileMachO::Initialize(Ctx, TM);
> +
> +  // Exception Handling.
> +  LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
> +                                SectionKind::getReadOnlyWithRel());
> +}
> +
> +unsigned X86_MachoTargetObjectFile::getTTypeEncoding() const {
> +  return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
> +}
> +
> const MCExpr *X8664_MachoTargetObjectFile::
> getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,
>                                MachineModuleInfo *MMI, unsigned Encoding,
> 
> Modified: llvm/trunk/lib/Target/X86/X86TargetObjectFile.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetObjectFile.h?rev=98564&r1=98563&r2=98564&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86TargetObjectFile.h (original)
> +++ llvm/trunk/lib/Target/X86/X86TargetObjectFile.h Mon Mar 15 14:04:37 2010
> @@ -17,11 +17,19 @@
> namespace llvm {
>   class X86TargetMachine;
> 
> -  /// X8664_MachoTargetObjectFile - This TLOF implementation is used for
> -  /// Darwin/x86-64.
> -  class X8664_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
> +  /// X86_MachoTargetObjectFile - This TLOF implementation is used for Darwin
> +  /// x86 variants.
> +  class X86_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
>   public:
> +    virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
> 
> +    virtual unsigned getTTypeEncoding() const;
> +  };
> +
> +  /// X8664_MachoTargetObjectFile - This TLOF implementation is used for Darwin
> +  /// x86-64.
> +  class X8664_MachoTargetObjectFile : public X86_MachoTargetObjectFile {
> +  public:
>     virtual const MCExpr *
>     getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,
>                                    MachineModuleInfo *MMI, unsigned Encoding,
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list