[llvm] ae90df8 - [FIX] Avoid creating BFI when emitting remarks for dead functions
Hongtao Yu via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 25 11:12:47 PDT 2020
Author: Wei Wang
Date: 2020-08-25T11:12:38-07:00
New Revision: ae90df8e5a68c7df4ea3e552dd7f87270fbcb0c7
URL: https://github.com/llvm/llvm-project/commit/ae90df8e5a68c7df4ea3e552dd7f87270fbcb0c7
DIFF: https://github.com/llvm/llvm-project/commit/ae90df8e5a68c7df4ea3e552dd7f87270fbcb0c7.diff
LOG: [FIX] Avoid creating BFI when emitting remarks for dead functions
Dead function has its body stripped away, and can cause various
analyses to panic. Also it does not make sense to apply analyses on
such function.
Reviewed By: xazax.hun, MaskRay, wenlei, hoy
Differential Revision: https://reviews.llvm.org/D84715
Added:
Modified:
llvm/lib/LTO/LTO.cpp
llvm/test/LTO/Resolution/X86/dead-strip-fulllto.ll
Removed:
################################################################################
diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp
index 6e1e3998e490..6230216aa446 100644
--- a/llvm/lib/LTO/LTO.cpp
+++ b/llvm/lib/LTO/LTO.cpp
@@ -798,7 +798,7 @@ Error LTO::linkRegularLTO(RegularLTOState::AddedModule Mod,
for (GlobalValue *GV : Mod.Keep) {
if (LivenessFromIndex && !ThinLTO.CombinedIndex.isGUIDLive(GV->getGUID())) {
if (Function *F = dyn_cast<Function>(GV)) {
- OptimizationRemarkEmitter ORE(F);
+ OptimizationRemarkEmitter ORE(F, nullptr);
ORE.emit(OptimizationRemark(DEBUG_TYPE, "deadfunction", F)
<< ore::NV("Function", F)
<< " not added to the combined module ");
diff --git a/llvm/test/LTO/Resolution/X86/dead-strip-fulllto.ll b/llvm/test/LTO/Resolution/X86/dead-strip-fulllto.ll
index 43659313f2dc..fb4fde7661b7 100644
--- a/llvm/test/LTO/Resolution/X86/dead-strip-fulllto.ll
+++ b/llvm/test/LTO/Resolution/X86/dead-strip-fulllto.ll
@@ -1,7 +1,8 @@
; RUN: opt -module-summary -o %t %s
; RUN: opt -module-summary -o %t2 %S/Inputs/dead-strip-fulllto.ll
-; RUN: llvm-lto2 run --pass-remarks-output=%t4.yaml --pass-remarks-filter=. \
+; Adding '--pass-remarks-with-hotness' should not cause crash.
+; RUN: llvm-lto2 run --pass-remarks-output=%t4.yaml --pass-remarks-filter=. --pass-remarks-with-hotness \
; RUN: %t -r %t,main,px -r %t,live1, -r %t,live2,p -r %t,dead2,p \
; RUN: %t2 -r %t2,live1,p -r %t2,live2, -r %t2,dead1,p -r %t2,dead2, -r %t2,odr, \
; RUN: -save-temps -o %t3
More information about the llvm-commits
mailing list