Go to file
Sanjay Patel 70b36f193d [CGP] eliminate a sub instruction in memcmp expansion
As noted in D34071, there are some IR optimization opportunities that could be 
handled by normal IR passes if this expansion wasn't happening so late in CGP.

Regardless of that, it seems wasteful to knowingly produce suboptimal IR here, 
so I'm proposing this change:
  %s = sub i32 %x, %y
  %r = icmp ne %s, 0
    =>
  %r = icmp ne %x, %y

Changing the predicate to 'eq' mimics what InstCombine would do, so that's just
an efficiency improvement if we decide this expansion should happen sooner.

The fact that the PowerPC backend doesn't eliminate the 'subf.' might be 
something for PPC folks to investigate separately.

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

llvm-svn: 306471
2017-06-27 21:46:34 +00:00
clang [Sema] Allow unmarked overloadable functions. 2017-06-27 21:31:31 +00:00
clang-tools-extra [clang-tidy] Handle new array expressions in modernize-make-unique check. 2017-06-27 16:25:05 +00:00
compiler-rt Don't build tsan/dd when COMPILER_RT_HAS_TSAN is false 2017-06-27 21:10:46 +00:00
debuginfo-tests Add a test for PR33166. 2017-05-25 19:33:16 +00:00
libclc generic: add missing get_work_dim include 2017-06-02 15:58:35 +00:00
libcxx [libcxx] Annotate c++17 aligned new/delete operators with availability 2017-06-26 17:39:48 +00:00
libcxxabi Add some catch(...) blocks to the tests so that if they fail, we get a good error message. No functional change. 2017-06-22 00:49:03 +00:00
libunwind [libunwind] Add _LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS 2017-06-27 18:37:06 +00:00
lld Add more stringent tests for the resource section of executables. 2017-06-27 21:28:55 +00:00
lldb Upstream the 'eInstrumentationRuntimeTypeSwiftRuntimeReporting' value of the 'eInstrumentationRuntimeType' enum from the swift-lldb project (to avoid potential clashes). 2017-06-27 21:39:15 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [CGP] eliminate a sub instruction in memcmp expansion 2017-06-27 21:46:34 +00:00
openmp Make test/parallel/omp_nested.c not use so many threads 2017-06-27 03:04:25 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [NFC][CodeGen] Use the ExitBlock explicitly. 2017-06-27 11:33:22 +00:00