Eugene Zelenko
5c2aecef78
[Transforms] Revert r316630 changes in Scalar/MergeICmps.cpp to fix broken build bots (NFC).
...
llvm-svn: 316634
2017-10-26 01:25:14 +00:00
Eugene Zelenko
5adb96cc92
[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
...
llvm-svn: 316630
2017-10-26 00:55:39 +00:00
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
98eaa88357
[NFC] clang-format lib/Transforms/Scalar/MergeICmps.cpp
...
llvm-svn: 314906
2017-10-04 15:13:52 +00:00
Clement Courbet
bc0c4459c9
[MergeICmps] Fix build of rL312315 on clang-with-thin-lto-windows:
...
MergeICmps.cpp(68,15): error: chosen constructor is explicit in copy-initialization
return {};
APInt.h(339,12): note: explicit constructor declared here
explicit APInt() : BitWidth(1) { U.VAL = 0; }
^
MergeICmps.cpp(56,9): note: in implicit initialization of field 'Offset' with omitted
initializer
APInt Offset;
^
llvm-svn: 312326
2017-09-01 11:51:23 +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