From dcbbc69cc58294cedc865259c6fd5ba80ecd9bd3 Mon Sep 17 00:00:00 2001 From: Aditya Kumar <1894981+hiraditya@users.noreply.github.com> Date: Sun, 13 Jun 2021 11:32:28 -0700 Subject: [PATCH] Calculate getTerminator only when necessary Differential Revision: https://reviews.llvm.org/D104202 --- llvm/lib/Transforms/IPO/HotColdSplitting.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Transforms/IPO/HotColdSplitting.cpp b/llvm/lib/Transforms/IPO/HotColdSplitting.cpp index 8dc480f..833049d 100644 --- a/llvm/lib/Transforms/IPO/HotColdSplitting.cpp +++ b/llvm/lib/Transforms/IPO/HotColdSplitting.cpp @@ -150,9 +150,10 @@ static bool mayExtractBlock(const BasicBlock &BB) { // // Resumes that are not reachable from a cleanup landing pad are considered to // be unreachable. It’s not safe to split them out either. + if (BB.hasAddressTaken() || BB.isEHPad()) + return false; auto Term = BB.getTerminator(); - return !BB.hasAddressTaken() && !BB.isEHPad() && !isa(Term) && - !isa(Term); + return !isa(Term) && !isa(Term); } /// Mark \p F cold. Based on this assumption, also optimize it for minimum size. -- 2.7.4