[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