diff options
author | Florian Hahn <florian.hahn@arm.com> | 2018-04-24 16:55:32 +0000 |
---|---|---|
committer | Florian Hahn <florian.hahn@arm.com> | 2018-04-24 16:55:32 +0000 |
commit | ceee7889472456e370f4e943ca587c03f2de16be (patch) | |
tree | cf89b18831b33f86ce7260aeb93cc9c08242ed89 /llvm/lib | |
parent | f0945aa0e02b5191b323dfde4aa84e9c0506df04 (diff) | |
download | bcm5719-llvm-ceee7889472456e370f4e943ca587c03f2de16be.tar.gz bcm5719-llvm-ceee7889472456e370f4e943ca587c03f2de16be.zip |
[LoopInterchange] Make isProfitableForVectorization slightly more conservative.
After D43236, we started interchanging loops with empty dependence
matrices. In isProfitableForVectorization, we try to determine if
interchanging makes the loop dependences more friendly to the
vectorizer. If there are no dependences, we should not interchange,
based on that heuristic.
Reviewers: efriedma, mcrosier, karthikthecool, blitz.opensource
Reviewed By: mcrosier
Differential Revision: https://reviews.llvm.org/D45208
llvm-svn: 330738
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopInterchange.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp index a641afeda03..5dcb630c814 100644 --- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp +++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp @@ -1112,7 +1112,8 @@ static bool isProfitableForVectorization(unsigned InnerLoopId, } // If outer loop has dependence and inner loop is loop independent then it is // profitable to interchange to enable parallelism. - return true; + // If there are no dependences, interchanging will not improve anything. + return !DepMatrix.empty(); } bool LoopInterchangeProfitability::isProfitable(unsigned InnerLoopId, |