diff options
author | Yevgeny Rouban <yrouban@azul.com> | 2020-12-28 10:54:21 +0700 |
---|---|---|
committer | Yevgeny Rouban <yrouban@azul.com> | 2020-12-28 10:54:21 +0700 |
commit | d76c1d2247af599a67fcfee6b1ebfcffed99ee7c (patch) | |
tree | 918f705cd118dace924a8a7f558abcce57f350b5 /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | |
parent | 9d70dbdc2bf294abffd4b2c9ae524055f72d017a (diff) | |
download | llvm-d76c1d2247af599a67fcfee6b1ebfcffed99ee7c.zip llvm-d76c1d2247af599a67fcfee6b1ebfcffed99ee7c.tar.gz llvm-d76c1d2247af599a67fcfee6b1ebfcffed99ee7c.tar.bz2 |
[RS4GC] Lazily set changed flag when folding single entry phis
The function FoldSingleEntryPHINodes() is changed to return if
it has changed IR or not. This return value is used by RS4GC to
set the MadeChange flag respectively.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D93810
Diffstat (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp index 14795d4..5b8bc18 100644 --- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -136,9 +136,10 @@ bool llvm::EliminateUnreachableBlocks(Function &F, DomTreeUpdater *DTU, return !DeadBlocks.empty(); } -void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, +bool llvm::FoldSingleEntryPHINodes(BasicBlock *BB, MemoryDependenceResults *MemDep) { - if (!isa<PHINode>(BB->begin())) return; + if (!isa<PHINode>(BB->begin())) + return false; while (PHINode *PN = dyn_cast<PHINode>(BB->begin())) { if (PN->getIncomingValue(0) != PN) @@ -151,6 +152,7 @@ void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, PN->eraseFromParent(); } + return true; } bool llvm::DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI, |