[llvm] r327094 - Revert "[ThinLTO] Keep available_externally symbols live"

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 8 17:25:18 PST 2018


Author: echristo
Date: Thu Mar  8 17:25:18 2018
New Revision: 327094

URL: http://llvm.org/viewvc/llvm-project?rev=327094&view=rev
Log:
Revert "[ThinLTO] Keep available_externally symbols live"

This reverts commit r327041 and the followup attempts at fixing the testcase as they're still failing.

Removed:
    llvm/trunk/test/Transforms/FunctionImport/Inputs/not-prevailing.ll
    llvm/trunk/test/Transforms/FunctionImport/not-prevailing.ll
Modified:
    llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp
    llvm/trunk/test/ThinLTO/X86/deadstrip.ll

Modified: llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp?rev=327094&r1=327093&r2=327094&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/FunctionImport.cpp Thu Mar  8 17:25:18 2018
@@ -544,25 +544,9 @@ void llvm::computeDeadSymbols(
       if (S->isLive())
         return;
 
-    // We only keep live symbols that are known to be non-prevailing if any are
-    // available_externally. Those symbols are discarded later in the
-    // EliminateAvailableExternally pass and setting them to not-live breaks
-    // downstreams users of liveness information (PR36483).
-    if (isPrevailing(VI.getGUID()) == PrevailingType::No) {
-      bool AvailableExternally = false;
-      for (auto &S : VI.getSummaryList())
-        if (S->linkage() == GlobalValue::AvailableExternallyLinkage)
-          AvailableExternally = true;
-
-      if (!AvailableExternally)
-        return;
-
-#ifndef NDEBUG
-      for (auto &S : VI.getSummaryList())
-        assert(!GlobalValue::isInterposableLinkage(S->linkage()) &&
-               "Symbol with interposable and available_externally linkages");
-#endif
-    }
+    // We do not keep live symbols that are known to be non-prevailing.
+    if (isPrevailing(VI.getGUID()) == PrevailingType::No)
+      return;
 
     for (auto &S : VI.getSummaryList())
       S->setLive(true);

Modified: llvm/trunk/test/ThinLTO/X86/deadstrip.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/ThinLTO/X86/deadstrip.ll?rev=327094&r1=327093&r2=327094&view=diff
==============================================================================
--- llvm/trunk/test/ThinLTO/X86/deadstrip.ll (original)
+++ llvm/trunk/test/ThinLTO/X86/deadstrip.ll Thu Mar  8 17:25:18 2018
@@ -14,7 +14,6 @@
 ; RUN:   -r %t1.bc,_dead_func,pl \
 ; RUN:   -r %t1.bc,_baz,l \
 ; RUN:   -r %t1.bc,_boo,l \
-; RUN:   -r %t1.bc,_live_available_externally_func,l \
 ; RUN:   -r %t2.bc,_baz,pl \
 ; RUN:   -r %t2.bc,_boo,pl \
 ; RUN:   -r %t2.bc,_dead_func,l \
@@ -28,8 +27,6 @@
 ; COMBINED-DAG: <COMBINED {{.*}} op2=119
 ; Live, dso_local, Internal
 ; COMBINED-DAG: <COMBINED {{.*}} op2=103
-; Live, Local, AvailableExternally
-; COMBINED-DAG: <COMBINED {{.*}} op2=97
 ; Live, Local, External
 ; COMBINED-DAG: <COMBINED {{.*}} op2=96
 ; COMBINED-DAG: <COMBINED {{.*}} op2=96
@@ -82,7 +79,6 @@
 ; RUN:   -r %t1.bc,_dead_func,pl \
 ; RUN:   -r %t1.bc,_baz,l \
 ; RUN:   -r %t1.bc,_boo,l \
-; RUN:   -r %t1.bc,_live_available_externally_func,l \
 ; RUN:   -r %t3.bc,_baz,pl \
 ; RUN:   -r %t3.bc,_boo,pl \
 ; RUN:   -r %t3.bc,_dead_func,l \
@@ -128,13 +124,8 @@ define void @dead_func() {
     ret void
 }
 
-define available_externally void @live_available_externally_func() {
-    ret void
-}
-
 define void @main() {
     call void @bar()
     call void @bar_internal()
-    call void @live_available_externally_func()
     ret void
 }

Removed: llvm/trunk/test/Transforms/FunctionImport/Inputs/not-prevailing.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/FunctionImport/Inputs/not-prevailing.ll?rev=327093&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/FunctionImport/Inputs/not-prevailing.ll (original)
+++ llvm/trunk/test/Transforms/FunctionImport/Inputs/not-prevailing.ll (removed)
@@ -1,6 +0,0 @@
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-define weak i32 @foo() {
-  ret i32 0
-}

Removed: llvm/trunk/test/Transforms/FunctionImport/not-prevailing.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/FunctionImport/not-prevailing.ll?rev=327093&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/FunctionImport/not-prevailing.ll (original)
+++ llvm/trunk/test/Transforms/FunctionImport/not-prevailing.ll (removed)
@@ -1,19 +0,0 @@
-; REQUIRES: asserts
-; RUN: opt -module-summary %s -o %t1.bc
-; RUN: opt -module-summary -o %t2.bc %S/Inputs/not-prevailing.ll
-; RUN: not --crash llvm-lto2 run -o %t3.bc %t1.bc %t2.bc -r %t1.bc,bar,px \
-; RUN:     -r %t1.bc,foo,x -r %t2.bc,foo,x -save-temps 2>&1 | FileCheck %s
-
-; CHECK: "Symbol with interposable and available_externally linkages"
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-define available_externally i32 @foo() {
-  ret i32 1
-}
-
-define i32 @bar() {
-  %1 = call i32 @foo()
-  ret i32 %1
-}




More information about the llvm-commits mailing list