diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2020-02-25 21:52:46 +0300 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2020-02-25 23:05:59 +0300 |
commit | d6f47aeb5198b142072d8ce2bbf2fdd30d116db0 (patch) | |
tree | 6af8e9b1ccb536c903cadbc6c7420382dac41252 /llvm/lib/Transforms/Utils/LoopUtils.cpp | |
parent | 0f3c9b54e60b384728c0c24518b8f2645719275e (diff) | |
download | llvm-d6f47aeb5198b142072d8ce2bbf2fdd30d116db0.zip llvm-d6f47aeb5198b142072d8ce2bbf2fdd30d116db0.tar.gz llvm-d6f47aeb5198b142072d8ce2bbf2fdd30d116db0.tar.bz2 |
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model min/max (PR44668)
Summary:
Previosly we simply always said that `SCEVMinMaxExpr` is too costly to expand.
But this isn't really true, it expands into just a comparison+swap pair.
And again much like with add/mul, there will be one less such pair
than the number of operands. And we need to count the cost of operands themselves.
This does change a number of testcases, and as far as i can tell,
all of these changes are improvements, in the sense that
we fixed up more latches to do the [in]equality comparison.
This concludes cost-modelling changes, no other SCEV expressions exist as of now.
This is a part of addressing [[ https://bugs.llvm.org/show_bug.cgi?id=44668 | PR44668 ]].
Reviewers: reames, mkazantsev, wmi, sanjoy
Reviewed By: mkazantsev
Subscribers: hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73744
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions