[all-commits] [llvm/llvm-project] 292771: [CVP] Deduce no-wrap on `mul`

Roman Lebedev via All-commits all-commits at lists.llvm.org
Mon Oct 21 01:20:35 PDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 292771627735a0d23ba3e82b04f9571def812917
      https://github.com/llvm/llvm-project/commit/292771627735a0d23ba3e82b04f9571def812917
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/mul.ll

  Log Message:
  -----------
  [CVP] Deduce no-wrap on `mul`

Summary:
`ConstantRange::makeGuaranteedNoWrapRegion()` knows how to deal with `mul`
since rL335646, there is exhaustive test coverage.
This is already used by CVP's `processOverflowIntrinsic()`,
and by SCEV's `StrengthenNoWrapFlags()`

That being said, currently, this doesn't help much in the end:
| statistic                              |     old |     new | delta | percentage |
| correlated-value-propagation.NumMulNSW |       4 |     275 |   271 |   6775.00% |
| correlated-value-propagation.NumMulNUW |       4 |    1323 |  1319 |  32975.00% |
| correlated-value-propagation.NumMulNW  |       8 |    1598 |  1590 |  19875.00% |
| correlated-value-propagation.NumNSW    |    5715 |    5986 |   271 |      4.74% |
| correlated-value-propagation.NumNUW    |    9193 |   10512 |  1319 |     14.35% |
| correlated-value-propagation.NumNW     |   14908 |   16498 |  1590 |     10.67% |
| instcount.NumAddInst                   |  275871 |  275869 |    -2 |      0.00% |
| instcount.NumBrInst                    |  708234 |  708232 |    -2 |      0.00% |
| instcount.NumMulInst                   |   43812 |   43810 |    -2 |      0.00% |
| instcount.NumPHIInst                   |  316786 |  316784 |    -2 |      0.00% |
| instcount.NumTruncInst                 |   62165 |   62167 |     2 |      0.00% |
| instcount.NumUDivInst                  |    2528 |    2526 |    -2 |     -0.08% |
| instcount.TotalBlocks                  |  842995 |  842993 |    -2 |      0.00% |
| instcount.TotalInsts                   | 7376486 | 7376478 |    -8 |      0.00% |
(^ test-suite plain, tests still pass)

Reviewers: nikic, reames, luqmana, sanjoy, timshen

Reviewed By: reames

Subscribers: hiraditya, javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69203

llvm-svn: 375396


  Commit: 9948fac6c1fae87b31a35afa84fcdb118b671c43
      https://github.com/llvm/llvm-project/commit/9948fac6c1fae87b31a35afa84fcdb118b671c43
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  Log Message:
  -----------
  [NFC][InstCombine] Fixup comments

As noted in post-commit review of rL375378375378.

llvm-svn: 375397


Compare: https://github.com/llvm/llvm-project/compare/a861c9aef926...9948fac6c1fa


More information about the All-commits mailing list