diff options
author | Whitney Tsang <whitneyt@ca.ibm.com> | 2019-11-25 17:51:24 +0000 |
---|---|---|
committer | Whitney Tsang <whitneyt@ca.ibm.com> | 2019-11-25 17:54:42 +0000 |
commit | aaf7f05a96e6c21b7a6d1ad9e73fb7ab5eee7d83 (patch) | |
tree | 7f59c9f500fd88427479595cbc9b8705dad7b0e9 /llvm/lib/Transforms/Utils/CodeMoverUtils.cpp | |
parent | 7fbaa8097ecc4309fec49db14fadac731ce53079 (diff) | |
download | bcm5719-llvm-aaf7f05a96e6c21b7a6d1ad9e73fb7ab5eee7d83.tar.gz bcm5719-llvm-aaf7f05a96e6c21b7a6d1ad9e73fb7ab5eee7d83.zip |
[NFC][LoopFusion] Use isControlFlowEquivalent() from CodeMoverUtils.
Reviewer: kbarton, jdoerfert, Meinersbur, bmahjour, etiotto
Reviewed By: Meinersbur
Subscribers: hiraditya, llvm-commits
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D70619
Diffstat (limited to 'llvm/lib/Transforms/Utils/CodeMoverUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/CodeMoverUtils.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/CodeMoverUtils.cpp b/llvm/lib/Transforms/Utils/CodeMoverUtils.cpp index 5aab27fa094..7a3a8adfea8 100644 --- a/llvm/lib/Transforms/Utils/CodeMoverUtils.cpp +++ b/llvm/lib/Transforms/Utils/CodeMoverUtils.cpp @@ -33,10 +33,17 @@ STATISTIC(NotMovedTerminator, "Movement of Terminator are not supported"); bool llvm::isControlFlowEquivalent(const Instruction &I0, const Instruction &I1, const DominatorTree &DT, const PostDominatorTree &PDT) { - const BasicBlock *BB0 = I0.getParent(); - const BasicBlock *BB1 = I1.getParent(); - return ((DT.dominates(BB0, BB1) && PDT.dominates(BB1, BB0)) || - (PDT.dominates(BB0, BB1) && DT.dominates(BB1, BB0))); + return isControlFlowEquivalent(*I0.getParent(), *I1.getParent(), DT, PDT); +} + +bool llvm::isControlFlowEquivalent(const BasicBlock &BB0, const BasicBlock &BB1, + const DominatorTree &DT, + const PostDominatorTree &PDT) { + if (&BB0 == &BB1) + return true; + + return ((DT.dominates(&BB0, &BB1) && PDT.dominates(&BB1, &BB0)) || + (PDT.dominates(&BB0, &BB1) && DT.dominates(&BB1, &BB0))); } static bool reportInvalidCandidate(const Instruction &I, |