From 3caa0fd05099bba12f5630c3f2eeceec9a799eec Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Fri, 9 Mar 2018 01:25:18 +0000 Subject: [PATCH] Revert "[ThinLTO] Keep available_externally symbols live" This reverts commit r327041 and the followup attempts at fixing the testcase as they're still failing. llvm-svn: 327094 --- llvm/lib/Transforms/IPO/FunctionImport.cpp | 22 +++------------------- llvm/test/ThinLTO/X86/deadstrip.ll | 9 --------- .../FunctionImport/Inputs/not-prevailing.ll | 6 ------ .../Transforms/FunctionImport/not-prevailing.ll | 19 ------------------- 4 files changed, 3 insertions(+), 53 deletions(-) delete mode 100644 llvm/test/Transforms/FunctionImport/Inputs/not-prevailing.ll delete mode 100644 llvm/test/Transforms/FunctionImport/not-prevailing.ll diff --git a/llvm/lib/Transforms/IPO/FunctionImport.cpp b/llvm/lib/Transforms/IPO/FunctionImport.cpp index c106f11..b68058c 100644 --- a/llvm/lib/Transforms/IPO/FunctionImport.cpp +++ b/llvm/lib/Transforms/IPO/FunctionImport.cpp @@ -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); diff --git a/llvm/test/ThinLTO/X86/deadstrip.ll b/llvm/test/ThinLTO/X86/deadstrip.ll index 827ad22..e3f16a8 100644 --- a/llvm/test/ThinLTO/X86/deadstrip.ll +++ b/llvm/test/ThinLTO/X86/deadstrip.ll @@ -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: &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 -} -- 2.7.4