llvm-6502/lib/Transforms
Shuxin Yang 84fca61ca5 rdar://12100355 (part 1)
This revision attempts to recognize following population-count pattern:

 while(a) { c++; ... ; a &= a - 1; ... },
  where <c> and <a>could be used multiple times in the loop body.

 TODO: On X8664 and ARM, __buildin_ctpop() are not expanded to a efficent 
instruction sequence, which need to be improved in the following commits.

Reviewed by Nadav, really appreciate!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168931 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29 19:38:54 +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
InstCombine instcombine: Don't replace all uses for instructions with no uses 2012-11-27 18:52:49 +00:00
Instrumentation [ASan] Simplify check added in r168861. Bail out from module pass early if the module is blacklisted. 2012-11-29 18:27:01 +00:00
IPO No need to run LICM after loop vectorization because we dont generate invariant code any more. 2012-11-29 19:28:29 +00:00
Scalar rdar://12100355 (part 1) 2012-11-29 19:38:54 +00:00
Utils instcombine: Migrate puts optimizations 2012-11-29 19:15:17 +00:00
Vectorize When broadcasting invariant scalars into vectors, place the broadcast code in the preheader. 2012-11-29 19:25:41 +00:00
CMakeLists.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
LLVMBuild.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
Makefile Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00