Clement Courbet
e2e8a5c496
Re-land "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion."
...
(fixed stability issues)
This reverts commit d6492333d3b478a1d88163315002022f8d5e58dc.
llvm-svn: 315281
2017-10-10 08:00:45 +00:00
Clement Courbet
d12c189e2e
Revert "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion."
...
Still a few stability issues on windows.
This reverts commit 67e3db9bc121ba244e20337aabc7cf341a62b545.
llvm-svn: 315058
2017-10-06 13:02:24 +00:00
Clement Courbet
4e1bae8136
Re-land "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion."
...
(fixed unit tests by making comparisons stable)
This reverts commit 1b2d359ce256fd6737da4e93833346a0bd6d7583.
llvm-svn: 315056
2017-10-06 12:12:35 +00:00
Clement Courbet
922e5bc698
Revert "Re-land "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion."""
...
broken test on windows
This reverts commit c91479518344fd1fc071c5bd5848f6eb83e53dca.
llvm-svn: 314985
2017-10-05 14:42:06 +00:00
Clement Courbet
4cafbb9b5e
Re-land "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion.""
...
llvm-svn: 314980
2017-10-05 12:39:57 +00:00
Clement Courbet
6603fc0e7b
Revert "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion."
...
Breaks
clang-stage1-cmake-RA-incremental/llvm/test/Transforms/MergeICmps/X86/tuple-four-int8.ll
This reverts commit 3038c459d67f8898ffa295d54a013b280690abfa.
llvm-svn: 314972
2017-10-05 08:03:39 +00:00
Clement Courbet
902eef32eb
[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion.
...
Summary: This is to avoid e.g. merging two cheap icmps if the target is not going to expand to something nice later.
Reviewers: dberlin, spatel
Subscribers: davide, nemanjai
Differential Revision: https://reviews.llvm.org/D38232
llvm-svn: 314970
2017-10-05 07:49:09 +00:00
Clement Courbet
65130e2d8d
Reland rL312315: [MergeICmps] MergeICmps is a new optimization pass that turns chains of integer
...
Add missing header.
This reverts commit 86dd6335cf7607af22f383a9a8e072ba929848cf.
llvm-svn: 312322
2017-09-01 10:56:34 +00:00
Clement Courbet
316212575b
Revert "[MergeICmps] MergeICmps is a new optimization pass that turns chains of integer"
...
Break build
This reverts commit d07ab866f7f88f81e49046d691a80dcd32d7198b.
llvm-svn: 312317
2017-09-01 09:43:08 +00:00
Clement Courbet
9473c01e96
[MergeICmps] MergeICmps is a new optimization pass that turns chains of integer
...
comparisons into memcmp.
Thanks to recent improvements in the LLVM codegen, the memcmp is typically
inlined as a chain of efficient hardware comparisons.
This typically benefits C++ member or nonmember operator==().
For now this is disabled by default until:
- https://bugs.llvm.org/show_bug.cgi?id=33329 is complete
- Benchmarks show that this is always useful.
Differential Revision:
https://reviews.llvm.org/D33987
llvm-svn: 312315
2017-09-01 09:07:05 +00:00