Revert "Add Available Externally linkage type to isWeakForLinker()"
authorMehdi Amini <mehdi.amini@apple.com>
Tue, 8 Dec 2015 19:13:31 +0000 (19:13 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Tue, 8 Dec 2015 19:13:31 +0000 (19:13 +0000)
This reverts r255043, as per post-review concern were raised on the correctness.

From: Mehdi Amini <mehdi.amini@apple.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255045 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/GlobalValue.h
test/Transforms/GlobalOpt/available_externally_global_ctors.ll [deleted file]

index 3461b9ee8b82d1851ddef99bf45280722a6c5d07..2f9172648a26a6d3f9cec216b7ef5be03b1c662e 100644 (file)
@@ -256,8 +256,7 @@ public:
   static bool isWeakForLinker(LinkageTypes Linkage)  {
     return Linkage == WeakAnyLinkage || Linkage == WeakODRLinkage ||
            Linkage == LinkOnceAnyLinkage || Linkage == LinkOnceODRLinkage ||
-           Linkage == CommonLinkage || Linkage == ExternalWeakLinkage ||
-           Linkage == AvailableExternallyLinkage;
+           Linkage == CommonLinkage || Linkage == ExternalWeakLinkage;
   }
 
   bool hasExternalLinkage() const { return isExternalLinkage(Linkage); }
diff --git a/test/Transforms/GlobalOpt/available_externally_global_ctors.ll b/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
deleted file mode 100644 (file)
index 7092a5a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.11.0"
-
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-; Verify that the initialization of the available_externally global is not eliminated
-; CHECK: @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @foo_static_init, i8* null }]
-
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @foo_static_init, i8* null }]
-@foo_external = available_externally global void ()* null
-
-define internal void @foo_static_init() {
-entry:
-  store void ()* @foo_impl, void ()** @foo_external
-  ret void
-}
-
-define internal void @foo_impl() {
-entry:
-  ret void
-}
-