[llvm-branch-commits] [llvm-branch] r206065 - Merging r198937:

Tom Stellard thomas.stellard at amd.com
Fri Apr 11 13:23:49 PDT 2014


Author: tstellar
Date: Fri Apr 11 15:23:49 2014
New Revision: 206065

URL: http://llvm.org/viewvc/llvm-project?rev=206065&view=rev
Log:
Merging r198937:

------------------------------------------------------------------------
r198937 | kristof.beyls | 2014-01-10 08:41:49 -0500 (Fri, 10 Jan 2014) | 2 lines

Make sure -use-init-array has intended effect on all AArch64 ELF targets, not just linux.

------------------------------------------------------------------------

Modified:
    llvm/branches/release_34/lib/Target/AArch64/AArch64ISelLowering.cpp
    llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.cpp
    llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.h
    llvm/branches/release_34/test/CodeGen/AArch64/init-array.ll

Modified: llvm/branches/release_34/lib/Target/AArch64/AArch64ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_34/lib/Target/AArch64/AArch64ISelLowering.cpp?rev=206065&r1=206064&r2=206065&view=diff
==============================================================================
--- llvm/branches/release_34/lib/Target/AArch64/AArch64ISelLowering.cpp (original)
+++ llvm/branches/release_34/lib/Target/AArch64/AArch64ISelLowering.cpp Fri Apr 11 15:23:49 2014
@@ -31,12 +31,8 @@ using namespace llvm;
 
 static TargetLoweringObjectFile *createTLOF(AArch64TargetMachine &TM) {
   const AArch64Subtarget *Subtarget = &TM.getSubtarget<AArch64Subtarget>();
-
-  if (Subtarget->isTargetLinux())
-    return new AArch64LinuxTargetObjectFile();
-  if (Subtarget->isTargetELF())
-    return new TargetLoweringObjectFileELF();
-  llvm_unreachable("unknown subtarget type");
+  assert (Subtarget->isTargetELF() && "unknown subtarget type");
+  return new AArch64ElfTargetObjectFile();
 }
 
 AArch64TargetLowering::AArch64TargetLowering(AArch64TargetMachine &TM)

Modified: llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.cpp?rev=206065&r1=206064&r2=206065&view=diff
==============================================================================
--- llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.cpp (original)
+++ llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.cpp Fri Apr 11 15:23:49 2014
@@ -22,3 +22,10 @@ AArch64LinuxTargetObjectFile::Initialize
   TargetLoweringObjectFileELF::Initialize(Ctx, TM);
   InitializeELF(TM.Options.UseInitArray);
 }
+
+void
+AArch64ElfTargetObjectFile::Initialize(MCContext &Ctx,
+                                       const TargetMachine &TM) {
+  TargetLoweringObjectFileELF::Initialize(Ctx, TM);
+  InitializeELF(TM.Options.UseInitArray);
+}

Modified: llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.h?rev=206065&r1=206064&r2=206065&view=diff
==============================================================================
--- llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.h (original)
+++ llvm/branches/release_34/lib/Target/AArch64/AArch64TargetObjectFile.h Fri Apr 11 15:23:49 2014
@@ -20,8 +20,12 @@
 
 namespace llvm {
 
-  /// AArch64LinuxTargetObjectFile - This implementation is used for linux
-  /// AArch64.
+  /// AArch64ElfTargetObjectFile - This implementation is used for ELF
+  /// AArch64 targets.
+  class AArch64ElfTargetObjectFile : public TargetLoweringObjectFileELF {
+    virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
+  };
+
   class AArch64LinuxTargetObjectFile : public TargetLoweringObjectFileELF {
     virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
   };

Modified: llvm/branches/release_34/test/CodeGen/AArch64/init-array.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_34/test/CodeGen/AArch64/init-array.ll?rev=206065&r1=206064&r2=206065&view=diff
==============================================================================
--- llvm/branches/release_34/test/CodeGen/AArch64/init-array.ll (original)
+++ llvm/branches/release_34/test/CodeGen/AArch64/init-array.ll Fri Apr 11 15:23:49 2014
@@ -1,4 +1,5 @@
 ; RUN: llc -mtriple=aarch64-none-linux-gnu -verify-machineinstrs -use-init-array < %s | FileCheck %s
+; RUN: llc -mtriple=aarch64-none-none-eabi -verify-machineinstrs -use-init-array < %s | FileCheck %s
 
 define internal void @_GLOBAL__I_a() section ".text.startup" {
   ret void





More information about the llvm-branch-commits mailing list