llvm-project/llvm/lib/Transforms
Benjamin Kramer f4ea1d5f79 SimplifyCFG: Turn switches into sub+icmp+branch if possible.
This makes the job of the later optzn passes easier, allowing the vast amount of
icmp transforms to chew on it.

We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting
binary on i386-linux.

The testcase from README.txt now compiles into
  decl  %edi
  cmpl  $3, %edi
  sbbl  %eax, %eax
  andl  $1, %eax
  ret

llvm-svn: 124724
2011-02-02 15:56:22 +00:00
..
Hello Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet. 2010-10-07 00:31:16 +00:00
IPO Remove wasteful caching. This isn't needed for correctness because any function 2011-02-02 05:31:01 +00:00
InstCombine Conservatively, clear optional flags, such as nsw, when performing 2011-02-02 02:05:46 +00:00
Instrumentation Implementation of path profiling. 2011-01-29 01:09:53 +00:00
Scalar Fix reassociate to clear optional flags, such as nsw. 2011-02-02 02:02:34 +00:00
Utils SimplifyCFG: Turn switches into sub+icmp+branch if possible. 2011-02-02 15:56:22 +00:00
Makefile Revert r100896 and around - this breaks the only mingw32 buildbot we have. 2010-04-15 19:51:42 +00:00