llvm-project/llvm/test
Roman Lebedev 2927716277 [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
2019-10-21 08:21:44 +00:00
..
Analysis [SCEV] Simplify umin/max of zext and sext of the same value 2019-10-19 17:23:02 +00:00
Assembler [lit] Fix a test case that r374652 missed 2019-10-16 17:56:12 +00:00
Bindings [IRBuilder] Update IRBuilder::CreateFNeg(...) to return a UnaryOperator 2019-10-14 15:35:01 +00:00
Bitcode Add FMF to vector ops for phi 2019-10-14 17:39:32 +00:00
BugPoint
CodeGen [IR] Fix mayReadFromMemory() for writeonly calls 2019-10-21 06:52:08 +00:00
DebugInfo [DWARF5] Added support for DW_AT_noreturn attribute to be emitted for 2019-10-16 16:30:38 +00:00
Demangle [Demangle] Add a few more options to the microsoft demangler 2019-10-15 08:29:56 +00:00
Examples
ExecutionEngine [JITLink] Switch to slab allocation for InProcessMemoryManager, re-enable test. 2019-10-15 21:06:57 +00:00
Feature [FPEnv] Add constrained intrinsics for lrint and lround 2019-10-07 13:20:00 +00:00
FileCheck [FileCheck] Implement --ignore-case option. 2019-10-11 11:59:14 +00:00
Instrumentation Insert module constructors in a module pass 2019-10-11 08:47:03 +00:00
Integer
JitListener
LTO Reland: Dead Virtual Function Elimination 2019-10-17 09:58:57 +00:00
Linker
MC [X86] Fix register parsing in .seh_* in Intel syntax 2019-10-18 21:01:41 +00:00
MachineVerifier Add an operand to memory intrinsics to denote the "tail" marker. 2019-09-28 05:33:21 +00:00
Object [yaml2obj][obj2yaml] - Do not create a symbol table by default. 2019-10-20 14:47:17 +00:00
ObjectYAML [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
Other Reapply r374743 with a fix for the ocaml binding 2019-10-14 16:15:14 +00:00
Reduce [Testing] Python 3 requires `print` to use parens 2019-09-20 13:52:47 +00:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen [TableGen] Fix a bug that MCSchedClassDesc is interfered between different SchedModel 2019-10-11 08:36:54 +00:00
ThinLTO/X86 One more attempt to fix PS4 buildbot after r375219 2019-10-18 14:11:19 +00:00
Transforms [CVP] Deduce no-wrap on `mul` 2019-10-21 08:21:44 +00:00
Unit
Verifier [DebugInfo] Add a DW_OP_LLVM_entry_value operation 2019-10-15 11:31:21 +00:00
YAMLParser
tools [yaml2obj][obj2yaml] - Do not create a symbol table by default. 2019-10-20 14:47:17 +00:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py Reland "[utils] Implement the llvm-locstats tool" 2019-10-02 07:00:01 +00:00
lit.site.cfg.py.in Follow-up to r372209: Use single quotes for host_ldflags in the lit config 2019-09-18 14:12:59 +00:00