summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/CodeExtractor.cpp
diff options
context:
space:
mode:
authorAnna Thomas <anna@azul.com>2018-03-22 16:03:59 +0000
committerAnna Thomas <anna@azul.com>2018-03-22 16:03:59 +0000
commit9b1176b0efd996b95481cd77443e26ab76903139 (patch)
tree76b362e2cd0ee0cc9cd7cb83b9b70104abdedff6 /llvm/lib/Transforms/Utils/CodeExtractor.cpp
parent0368417595fad53d95e25c4d6de4e5e4cd726fbf (diff)
downloadbcm5719-llvm-9b1176b0efd996b95481cd77443e26ab76903139.tar.gz
bcm5719-llvm-9b1176b0efd996b95481cd77443e26ab76903139.zip
[LoopPredication] Add profitability check based on BPI
Summary: LoopPredication is not profitable when the loop is known to always exit through some block other than the latch block. A coarse grained latch check can cause loop predication to predicate the loop, and unconditionally deoptimize. However, without predicating the loop, the guard may never fail within the loop during the dynamic execution because the non-latch loop termination condition exits the loop before the latch condition causes the loop to exit. We teach LP about this using BranchProfileInfo pass. Reviewers: apilipenko, skatkov, mkazantsev, reames Reviewed by: skatkov Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D44667 llvm-svn: 328210
Diffstat (limited to 'llvm/lib/Transforms/Utils/CodeExtractor.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud