diff options
author | Kristof Beyls <kristof.beyls@arm.com> | 2014-01-10 13:41:49 +0000 |
---|---|---|
committer | Kristof Beyls <kristof.beyls@arm.com> | 2014-01-10 13:41:49 +0000 |
commit | ac843ff0182cd7fadadb88910c01a42de46c9339 (patch) | |
tree | 74a336c2db742ef8947dbbdaa6e478dc9e6b4899 | |
parent | 095f4c451cf537ceac29100ec96eba8475e1beaf (diff) | |
download | llvm-ac843ff0182cd7fadadb88910c01a42de46c9339.tar.gz llvm-ac843ff0182cd7fadadb88910c01a42de46c9339.tar.bz2 llvm-ac843ff0182cd7fadadb88910c01a42de46c9339.tar.xz |
Make sure -use-init-array has intended effect on all AArch64 ELF targets, not just linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198937 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/AArch64/AArch64ISelLowering.cpp | 8 | ||||
-rw-r--r-- | lib/Target/AArch64/AArch64TargetObjectFile.cpp | 4 | ||||
-rw-r--r-- | lib/Target/AArch64/AArch64TargetObjectFile.h | 6 | ||||
-rw-r--r-- | test/CodeGen/AArch64/init-array.ll | 1 |
4 files changed, 8 insertions, 11 deletions
diff --git a/lib/Target/AArch64/AArch64ISelLowering.cpp b/lib/Target/AArch64/AArch64ISelLowering.cpp index ba7827a11e..167281c57e 100644 --- a/lib/Target/AArch64/AArch64ISelLowering.cpp +++ b/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -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) diff --git a/lib/Target/AArch64/AArch64TargetObjectFile.cpp b/lib/Target/AArch64/AArch64TargetObjectFile.cpp index b4452f5145..663d61944a 100644 --- a/lib/Target/AArch64/AArch64TargetObjectFile.cpp +++ b/lib/Target/AArch64/AArch64TargetObjectFile.cpp @@ -17,8 +17,8 @@ using namespace llvm; void -AArch64LinuxTargetObjectFile::Initialize(MCContext &Ctx, - const TargetMachine &TM) { +AArch64ElfTargetObjectFile::Initialize(MCContext &Ctx, + const TargetMachine &TM) { TargetLoweringObjectFileELF::Initialize(Ctx, TM); InitializeELF(TM.Options.UseInitArray); } diff --git a/lib/Target/AArch64/AArch64TargetObjectFile.h b/lib/Target/AArch64/AArch64TargetObjectFile.h index 2089074f43..0f00a789d6 100644 --- a/lib/Target/AArch64/AArch64TargetObjectFile.h +++ b/lib/Target/AArch64/AArch64TargetObjectFile.h @@ -20,9 +20,9 @@ namespace llvm { - /// AArch64LinuxTargetObjectFile - This implementation is used for linux - /// AArch64. - class AArch64LinuxTargetObjectFile : public TargetLoweringObjectFileELF { + /// AArch64ElfTargetObjectFile - This implementation is used for ELF + /// AArch64 targets. + class AArch64ElfTargetObjectFile : public TargetLoweringObjectFileELF { virtual void Initialize(MCContext &Ctx, const TargetMachine &TM); }; diff --git a/test/CodeGen/AArch64/init-array.ll b/test/CodeGen/AArch64/init-array.ll index 3ff1c1a86e..076ae27721 100644 --- a/test/CodeGen/AArch64/init-array.ll +++ b/test/CodeGen/AArch64/init-array.ll @@ -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 |