llvm-6502/lib/Transforms/Scalar
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
..
ADCE.cpp
BasicBlockPlacement.cpp
CMakeLists.txt
CodeGenPrepare.cpp Handle the situation where CodeGenPrepare removes a reference to a BB that has 2012-11-29 19:38:06 +00:00
ConstantProp.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
CorrelatedValuePropagation.cpp CorrelatedPropagation: BasicBlock::removePredecessor can simplify PHI nodes. If the it's the condition of a SwitchInst, reload it. 2012-09-28 10:42:50 +00:00
DCE.cpp 80-col fixup. 2012-10-16 19:39:40 +00:00
DeadStoreElimination.cpp Unquadratize SetVector removal loops in DSE. 2012-10-14 10:21:31 +00:00
EarlyCSE.cpp Update EarlyCSE's SimpleValues to use Hashing.h for their hashes. Expanded the hashing and equality to allow for equality modulo commutativity for binary ops, and comparisons with swapping of predicates. 2012-10-09 16:57:38 +00:00
GlobalMerge.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
GVN.cpp Fix an obvious typo that causes an assertion failure when running 2012-11-02 07:49:32 +00:00
IndVarSimplify.cpp Revert the series of commits starting with r166578 which introduced the 2012-11-01 08:07:29 +00:00
JumpThreading.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LICM.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LLVMBuild.txt
LoopDeletion.cpp
LoopIdiomRecognize.cpp rdar://12100355 (part 1) 2012-11-29 19:38:54 +00:00
LoopInstSimplify.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LoopRotation.cpp
LoopStrengthReduce.cpp revert r166264 because the LTO build is still failing 2012-10-19 21:28:43 +00:00
LoopUnrollPass.cpp Create enums for the different attributes. 2012-10-09 07:45:08 +00:00
LoopUnswitch.cpp Simplify code. No functionality change. 2012-10-16 19:52:32 +00:00
LowerAtomic.cpp
Makefile
MemCpyOptimizer.cpp Revert the majority of the next patch in the address space series: 2012-11-01 09:14:31 +00:00
ObjCARC.cpp Use the Attributes::get method which takes an AttrVal value directly to simplify the code a bit. No functionality change. 2012-10-16 05:23:31 +00:00
Reassociate.cpp Remove the last bit of constant folding from LinearizeExprTree (most of it was 2012-11-18 20:15:36 +00:00
Reg2Mem.cpp
Scalar.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
ScalarReplAggregates.cpp Revert the series of commits starting with r166578 which introduced the 2012-11-01 08:07:29 +00:00
SCCP.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
SimplifyCFGPass.cpp Use TargetTransformInfo to control switch-to-lookup table transformation 2012-10-30 11:23:25 +00:00
SimplifyLibCalls.cpp instcombine: Migrate puts optimizations 2012-11-29 19:15:17 +00:00
Sink.cpp
SROA.cpp PR14055: Implement support for sub-vector operations in SROA. 2012-11-21 08:16:30 +00:00
TailRecursionElimination.cpp Revert r166407 because it caused analyzer tests to crash and broke self-host bots. 2012-10-22 18:16:14 +00:00