llvm/lib
Jim Grosbach 51a0280d29 DAG: Combine (and (setne X, 0), (setne X, -1)) -> (setuge (add X, 1), 2)
A common idiom is to use zero and all-ones as sentinal values and to
check for both in a single conditional ("x != 0 && x != (unsigned)-1").
That generates code, for i32, like:
  testl %edi, %edi
  setne %al
  cmpl  $-1, %edi
  setne %cl
  andb  %al, %cl

With this transform, we generate the simpler:
  incl  %edi
  cmpl  $1, %edi
  seta  %al

Similar improvements for other integer sizes and on other platforms. In
general, combining the two setcc instructions into one is better.

rdar://14689217

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188315 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-13 21:30:58 +00:00
..
Analysis Fix an oversight in isPotentiallyReachable where we wouldn't do any CFG-walking 2013-08-13 00:03:47 +00:00
AsmParser
Bitcode Make .bc en/decoding of AttrKind stable 2013-07-26 04:16:55 +00:00
CodeGen DAG: Combine (and (setne X, 0), (setne X, -1)) -> (setuge (add X, 1), 2) 2013-08-13 21:30:58 +00:00
DebugInfo Store compile unit corresponding to each chain of inlined debug info entries. No functionality change. 2013-08-06 10:49:15 +00:00
ExecutionEngine Optimistically ignore scattered relocations in MachO in RuntimeDyld. This 2013-08-09 00:57:01 +00:00
IR DebugInfo: provide the ability to add members to a class after it has been constructed 2013-08-09 17:17:12 +00:00
IRReader
Linker
MC [-cxx-abi microsoft] Stick zero initialized symbols into the .bss section for COFF 2013-08-13 01:23:53 +00:00
Object Add back missing PPC relocation types. 2013-08-09 09:42:14 +00:00
Option Options: Add new option kind that consumes remaining arguments 2013-08-13 21:09:50 +00:00
Support GCC warns about removing const with a c-style cast. 2013-08-13 09:57:55 +00:00
TableGen Remove some std stream usage from Support and TableGen 2013-08-06 22:51:21 +00:00
Target [Mips][msa] Added initial MSA support. 2013-08-13 20:54:07 +00:00
Transforms dfsan: fix lint warnings 2013-08-13 16:52:41 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile