[all-commits] [llvm/llvm-project] 78dc64: [CodeMoverUtils] Improve IsControlFlowEquivalent.
whitneywhtsang via All-commits
all-commits at lists.llvm.org
Tue Jan 28 06:18:17 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 78dc64989c2f5c075ca74af9dac0c1cb4a2b1f4b
https://github.com/llvm/llvm-project/commit/78dc64989c2f5c075ca74af9dac0c1cb4a2b1f4b
Author: Whitney Tsang <whitneyt at ca.ibm.com>
Date: 2020-01-28 (Tue, 28 Jan 2020)
Changed paths:
M llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
M llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp
Log Message:
-----------
[CodeMoverUtils] Improve IsControlFlowEquivalent.
Summary:
Currently IsControlFlowEquivalent determine if two blocks are control
flow equivalent by checking if A dominates B and B post dominates A.
There exists blocks that are control flow equivalent even if they don't
satisfy the A dominates B and B post dominates A condition.
For example,
if (cond)
A
if (cond)
B
In the PR, we determine if two blocks are control flow equivalent by
also checking if the two sets of conditions A and B depends on are
equivalent.
Reviewer: jdoerfert, Meinersbur, dmgreen, etiotto, bmahjour, fhahn,
hfinkel, kbarton
Reviewed By: fhahn
Subscribers: hiraditya, llvm-commits
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D71578
More information about the All-commits
mailing list