From 4dd3677b5f9eaffc9f6087d989a3a73ebb395013 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Tue, 2 Sep 2014 13:54:53 +0000 Subject: [PATCH] Replace -use-init-array with -use-ctors. We have been using .init-array for most systems for quiet some time, but tools like llc are still defaulting to .ctors because the old option was never changed. This patch makes llc default to .init-array and changes the option to be -use-ctors. Clang is not affected by this. It has its own fancier logic. llvm-svn: 216905 --- llvm/include/llvm/CodeGen/CommandFlags.h | 6 +++--- llvm/test/CodeGen/AArch64/init-array.ll | 4 ++-- llvm/test/CodeGen/Mips/init-array.ll | 2 +- llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll | 2 +- llvm/test/CodeGen/X86/constructor.ll | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/llvm/include/llvm/CodeGen/CommandFlags.h b/llvm/include/llvm/CodeGen/CommandFlags.h index 28069c3f40a7..95579f848255 100644 --- a/llvm/include/llvm/CodeGen/CommandFlags.h +++ b/llvm/include/llvm/CodeGen/CommandFlags.h @@ -190,8 +190,8 @@ EnablePIE("enable-pie", cl::init(false)); cl::opt -UseInitArray("use-init-array", - cl::desc("Use .init_array instead of .ctors."), +UseCtors("use-ctors", + cl::desc("Use .ctors instead of .init_array."), cl::init(false)); cl::opt StopAfter("stop-after", @@ -248,7 +248,7 @@ static inline TargetOptions InitTargetOptionsFromCodeGenFlags() { Options.StackAlignmentOverride = OverrideStackAlignment; Options.TrapFuncName = TrapFuncName; Options.PositionIndependentExecutable = EnablePIE; - Options.UseInitArray = UseInitArray; + Options.UseInitArray = !UseCtors; Options.DataSections = DataSections; Options.FunctionSections = FunctionSections; diff --git a/llvm/test/CodeGen/AArch64/init-array.ll b/llvm/test/CodeGen/AArch64/init-array.ll index f47b490baebd..a275e7ecc570 100644 --- a/llvm/test/CodeGen/AArch64/init-array.ll +++ b/llvm/test/CodeGen/AArch64/init-array.ll @@ -1,5 +1,5 @@ -; RUN: llc -mtriple=aarch64-none-linux-gnu -verify-machineinstrs -use-init-array -o - %s | FileCheck %s -; RUN: llc -mtriple=aarch64-none-none-eabi -verify-machineinstrs -use-init-array -o - %s | FileCheck %s +; RUN: llc -mtriple=aarch64-none-linux-gnu -verify-machineinstrs -o - %s | FileCheck %s +; RUN: llc -mtriple=aarch64-none-none-eabi -verify-machineinstrs -o - %s | FileCheck %s define internal void @_GLOBAL__I_a() section ".text.startup" { ret void diff --git a/llvm/test/CodeGen/Mips/init-array.ll b/llvm/test/CodeGen/Mips/init-array.ll index f96ce2647289..1ca182dae7a5 100644 --- a/llvm/test/CodeGen/Mips/init-array.ll +++ b/llvm/test/CodeGen/Mips/init-array.ll @@ -1,4 +1,4 @@ -; RUN: llc -mtriple mipsel-unknown-linux -use-init-array < %s | FileCheck %s +; RUN: llc -mtriple mipsel-unknown-linux < %s | FileCheck %s target triple = "mipsel-unknown-linux" diff --git a/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll b/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll index a95dcb580702..b278ad674152 100644 --- a/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll +++ b/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -mtriple=i386-linux-gnu | FileCheck %s --check-prefix=CHECK-DEFAULT +; RUN: llc < %s -mtriple=i386-linux-gnu -use-ctors | FileCheck %s --check-prefix=CHECK-DEFAULT ; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s --check-prefix=CHECK-DARWIN ; PR5329 diff --git a/llvm/test/CodeGen/X86/constructor.ll b/llvm/test/CodeGen/X86/constructor.ll index b57889643e0d..23860be4a3b0 100644 --- a/llvm/test/CodeGen/X86/constructor.ll +++ b/llvm/test/CodeGen/X86/constructor.ll @@ -1,5 +1,5 @@ -; RUN: llc -mtriple x86_64-pc-linux < %s | FileCheck --check-prefix=CTOR %s -; RUN: llc -mtriple x86_64-pc-linux -use-init-array < %s | FileCheck --check-prefix=INIT-ARRAY %s +; RUN: llc -mtriple x86_64-pc-linux -use-ctors < %s | FileCheck --check-prefix=CTOR %s +; RUN: llc -mtriple x86_64-pc-linux < %s | FileCheck --check-prefix=INIT-ARRAY %s @llvm.global_ctors = appending global [2 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @f }, { i32, void ()* } { i32 15, void ()* @g }] define void @f() {