From: Bill Wendling Date: Wed, 1 May 2013 22:32:08 +0000 (+0000) Subject: Revert r180737. The companion patch was reverted, and this is not relevant right... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f18a32eb128513239b516cd055baf9415d05f24f;p=oota-llvm.git Revert r180737. The companion patch was reverted, and this is not relevant right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180889 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h index 4ecc7ade719..c2fd6ce3679 100644 --- a/include/llvm/CodeGen/AsmPrinter.h +++ b/include/llvm/CodeGen/AsmPrinter.h @@ -486,7 +486,6 @@ namespace llvm { unsigned uid) const; void EmitLLVMUsedList(const ConstantArray *InitList); void EmitXXStructorList(const Constant *List, bool isCtor); - void EmitTLSInitFuncs(const ConstantArray *InitList); GCMetadataPrinter *GetOrCreateGCPrinter(GCStrategy *C); }; } diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 4a71ad33373..84162ace418 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -1254,11 +1254,6 @@ bool AsmPrinter::EmitSpecialLLVMGlobal(const GlobalVariable *GV) { return true; } - if (GV->getName() == "llvm.tls_init_funcs") { - EmitTLSInitFuncs(cast(GV->getInitializer())); - return true; - } - return false; } @@ -1325,16 +1320,6 @@ void AsmPrinter::EmitXXStructorList(const Constant *List, bool isCtor) { } } -/// EmitTLSInitFuncs - Emit the TLS initialization functions. -void AsmPrinter::EmitTLSInitFuncs(const ConstantArray *InitList) { - const DataLayout *TD = TM.getDataLayout(); - OutStreamer.SwitchSection(getObjFileLowering().getTLSThreadInitSection()); - EmitAlignment(Log2_32(TD->getPointerPrefAlignment())); - for (unsigned I = 0, E = InitList->getNumOperands(); I != E; ++I) - EmitGlobalConstant( - dyn_cast(InitList->getOperand(I)->stripPointerCasts())); -} - //===--------------------------------------------------------------------===// // Emission and print routines // diff --git a/test/CodeGen/X86/tls-init-funcs.ll b/test/CodeGen/X86/tls-init-funcs.ll deleted file mode 100644 index b4eafd4050e..00000000000 --- a/test/CodeGen/X86/tls-init-funcs.ll +++ /dev/null @@ -1,89 +0,0 @@ -; RUN: llc < %s -mtriple x86_64-apple-macosx10 | FileCheck %s - -; CHECK: .section __DATA,__thread_init,thread_local_init_function_pointers -; CHECK: .align 3 -; CHECK: .quad ___tls_init - -%struct.A = type { i8 } -%struct.B = type { i32 } - -@i = thread_local global i32 37, align 4 -@a = thread_local global %struct.A zeroinitializer, align 1 -@b = thread_local global %struct.B zeroinitializer, align 4 -@z = global %struct.A zeroinitializer, align 1 -@y = global %struct.B zeroinitializer, align 4 -@__tls_guard = internal thread_local unnamed_addr global i1 false -@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }] -@llvm.tls_init_funcs = appending global [1 x void ()*] [void ()* @__tls_init] - -@_ZTH1i = alias void ()* @__tls_init -@_ZTH1a = alias void ()* @__tls_init -@_ZTH1b = alias void ()* @__tls_init - -declare void @_ZN1AC1Ev(%struct.A*) - -declare void @_ZN1BC1Ei(%struct.B*, i32) - -define internal void @_GLOBAL__I_a() section "__TEXT,__StaticInit,regular,pure_instructions" { -entry: - tail call void @_ZN1AC1Ev(%struct.A* @z) - tail call void @_ZN1BC1Ei(%struct.B* @y, i32 42) - ret void -} - -define internal void @__tls_init() { -entry: - %.b = load i1* @__tls_guard, align 1 - store i1 true, i1* @__tls_guard, align 1 - br i1 %.b, label %exit, label %init - -init: ; preds = %entry - tail call void @_ZN1AC1Ev(%struct.A* @a) - tail call void @_ZN1BC1Ei(%struct.B* @b, i32 927) - br label %exit - -exit: ; preds = %entry, %init - ret void -} - -define weak_odr hidden i32* @_ZTW1i() { - %.b.i = load i1* @__tls_guard, align 1 - store i1 true, i1* @__tls_guard, align 1 - br i1 %.b.i, label %__tls_init.exit, label %init.i - -init.i: ; preds = %0 - tail call void @_ZN1AC1Ev(%struct.A* @a) - tail call void @_ZN1BC1Ei(%struct.B* @b, i32 927) - br label %__tls_init.exit - -__tls_init.exit: ; preds = %0, %init.i - ret i32* @i -} - -define weak_odr hidden %struct.A* @_ZTW1a() { - %.b.i = load i1* @__tls_guard, align 1 - store i1 true, i1* @__tls_guard, align 1 - br i1 %.b.i, label %__tls_init.exit, label %init.i - -init.i: ; preds = %0 - tail call void @_ZN1AC1Ev(%struct.A* @a) - tail call void @_ZN1BC1Ei(%struct.B* @b, i32 927) - br label %__tls_init.exit - -__tls_init.exit: ; preds = %0, %init.i - ret %struct.A* @a -} - -define weak_odr hidden %struct.B* @_ZTW1b() { - %.b.i = load i1* @__tls_guard, align 1 - store i1 true, i1* @__tls_guard, align 1 - br i1 %.b.i, label %__tls_init.exit, label %init.i - -init.i: ; preds = %0 - tail call void @_ZN1AC1Ev(%struct.A* @a) - tail call void @_ZN1BC1Ei(%struct.B* @b, i32 927) - br label %__tls_init.exit - -__tls_init.exit: ; preds = %0, %init.i - ret %struct.B* @b -}