diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-19 21:23:40 +0000 |
| commit | bdbe302c3396ceb4dd89d1214485439598f05368 (patch) | |
| tree | ccf66c6349b23061ed5e9645c21f15fbe718da8b /contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp | |
| parent | e7a1904fe1ced461b2a31f03b6592ae6564a243a (diff) | |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp index 2b706858cbed..d5468909dd4e 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp @@ -16,33 +16,9 @@ #include "llvm/IR/Function.h" #include "llvm/IR/Instructions.h" #include "llvm/IR/Type.h" -#include "llvm/InitializePasses.h" #include "llvm/Transforms/Utils.h" using namespace llvm; -char UnifyFunctionExitNodesLegacyPass::ID = 0; - -UnifyFunctionExitNodesLegacyPass::UnifyFunctionExitNodesLegacyPass() - : FunctionPass(ID) { - initializeUnifyFunctionExitNodesLegacyPassPass( - *PassRegistry::getPassRegistry()); -} - -INITIALIZE_PASS(UnifyFunctionExitNodesLegacyPass, "mergereturn", - "Unify function exit nodes", false, false) - -Pass *llvm::createUnifyFunctionExitNodesPass() { - return new UnifyFunctionExitNodesLegacyPass(); -} - -void UnifyFunctionExitNodesLegacyPass::getAnalysisUsage( - AnalysisUsage &AU) const { - // We preserve the non-critical-edgeness property - AU.addPreservedID(BreakCriticalEdgesID); - // This is a cluster of orthogonal Transforms - AU.addPreservedID(LowerSwitchID); -} - namespace { bool unifyUnreachableBlocks(Function &F) { @@ -110,16 +86,6 @@ bool unifyReturnBlocks(Function &F) { } } // namespace -// Unify all exit nodes of the CFG by creating a new BasicBlock, and converting -// all returns to unconditional branches to this new basic block. Also, unify -// all unreachable blocks. -bool UnifyFunctionExitNodesLegacyPass::runOnFunction(Function &F) { - bool Changed = false; - Changed |= unifyUnreachableBlocks(F); - Changed |= unifyReturnBlocks(F); - return Changed; -} - PreservedAnalyses UnifyFunctionExitNodesPass::run(Function &F, FunctionAnalysisManager &AM) { bool Changed = false; |
