llvm-6502/lib
Benjamin Kramer b6516aeef1 Reimplement CTPOP legalization with the "best" algorithm from
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel

In a silly microbenchmark on a 65 nm core2 this is 1.5x faster than the old
code in 32 bit mode and about 2x faster in 64 bit mode. It's also a lot shorter,
especially when counting 64 bit population on a 32 bit target.

I hope this is fast enough to replace Kernighan-style counting loops even when
the input is rather sparse.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123547 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15 20:30:30 +00:00
..
Analysis Teach LazyValueInfo that allocas aren't NULL. Over all of llvm-test, this saves 2011-01-15 09:16:12 +00:00
Archive Fix Whitespace. 2011-01-10 02:34:40 +00:00
AsmParser Allow unnamed_addr on declarations. 2011-01-15 08:15:00 +00:00
Bitcode FixedNumOperandTraits and VariadicOperandTraits assumed that, given a 2011-01-11 15:07:38 +00:00
CodeGen Reimplement CTPOP legalization with the "best" algorithm from 2011-01-15 20:30:30 +00:00
CompilerDriver Support/Path: Deprecate PathV1::exists and replace all uses with PathV2::fs::exists. 2011-01-10 02:34:23 +00:00
ExecutionEngine Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there. 2011-01-10 12:39:04 +00:00
Linker Allow unnamed_addr on declarations. 2011-01-15 08:15:00 +00:00
MC Use common style for .cfi directives 2011-01-14 21:57:39 +00:00
Object Fix mismatched new[]/delete. 2010-12-17 09:56:50 +00:00
Support Support/PathV2: Implement has_magic in terms of get_magic. 2011-01-15 18:52:41 +00:00
Target 80-col. 2011-01-15 00:25:09 +00:00
Transforms Add missing whitespace. 2011-01-15 18:42:52 +00:00
VMCore Allow unnamed_addr on declarations. 2011-01-15 08:15:00 +00:00
Makefile Add LLVMObject Library. 2010-11-15 03:21:41 +00:00