[PowerPC] Enable interleaved-access vectorization
[oota-llvm.git] / lib / Target / PowerPC / PPCTargetObjectFile.h
index 2d40bc9ceb190e26cb24e4324cda2f24896d27a4..d248791f2cad17a6a850fcaf2b05d592e8c37e21 100644 (file)
@@ -1,4 +1,4 @@
-//===-- llvm/Target/PPCTargetObjectFile.h - PowerPC Object Info -*- C++ -*-===//
+//===-- PPCTargetObjectFile.h - PPC Object Info -----------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -7,28 +7,29 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_TARGET_PPC_TARGETOBJECTFILE_H
-#define LLVM_TARGET_PPC_TARGETOBJECTFILE_H
+#ifndef LLVM_LIB_TARGET_POWERPC_PPCTARGETOBJECTFILE_H
+#define LLVM_LIB_TARGET_POWERPC_PPCTARGETOBJECTFILE_H
 
 #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
+#include "llvm/Target/TargetLoweringObjectFile.h"
+#include "llvm/Target/TargetMachine.h"
 
 namespace llvm {
 
-class MCContext;
-class TargetMachine;
+  /// PPC64LinuxTargetObjectFile - This implementation is used for
+  /// 64-bit PowerPC Linux.
+  class PPC64LinuxTargetObjectFile : public TargetLoweringObjectFileELF {
 
-// FIXME: This subclass isn't 100% necessary. It will become obsolete once we
-//        can place all LSDAs into the TEXT section. See
-//        <rdar://problem/6804645>.
-class PPCMachOTargetObjectFile : public TargetLoweringObjectFileMachO {
-public:
-  PPCMachOTargetObjectFile() : TargetLoweringObjectFileMachO() {}
+    void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
 
-  virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
+    MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
+                                      Mangler &Mang,
+                                      const TargetMachine &TM) const override;
 
-  virtual unsigned getTTypeEncoding() const;
-};
+    /// \brief Describe a TLS variable address within debug info.
+    const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override;
+  };
 
-} // end namespace llvm
+}  // end namespace llvm
 
 #endif