| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
boundary condition for checking if I and E were in the same word were incorrect, and, beyond that, the mask computation was not using a wide enough constant.
llvm-svn: 166015
|
|
|
|
|
|
| |
setting/resetting of ranges of bits, particularly useful when dealing with very large BitVector's.
llvm-svn: 165984
|
|
|
|
|
|
| |
magic and bring SmallBitVector up to date.
llvm-svn: 158600
|
|
|
|
|
|
|
| |
Returning a temporary BitVector is very expensive. If you must, create
the temporary explicitly: Use BitVector(A).flip() instead of ~A.
llvm-svn: 156768
|
|
|
|
|
|
| |
The existing operation (A & B).any() is very slow.
llvm-svn: 156760
|
|
|
|
|
|
|
|
|
|
|
|
| |
BitVector uses the native word size for its internal representation.
That doesn't work well for literal bit masks in source code.
This patch adds BitVector operations to efficiently apply literal bit
masks specified as arrays of uint32_t. Since each array entry always
holds exactly 32 bits, these portable bit masks can be source code
literals, probably produced by TableGen.
llvm-svn: 148272
|
|
|
|
| |
llvm-svn: 114830
|
|
|
|
|
|
| |
and fix a bug in BitVector's reference proxy class which this exposed.
llvm-svn: 102768
|
|
|
|
| |
llvm-svn: 95779
|
|
|
|
|
|
|
| |
restriction in BitVector for |= and ^= that the operand must be the
same length.
llvm-svn: 95768
|
|
|
|
|
|
|
|
|
| |
It fails with a release build only, for reasons
as yet unknown. (If there's a better way to Xfail
things here let me know, doesn't seem to be any
prior art in unittests.)
llvm-svn: 95700
|
|
a single pointer (PointerIntPair) member. In "small" mode, the
pointer field is reinterpreted as a set of bits. In "large" mode,
the pointer points to a heap-allocated object.
Also, give BitVector empty and swap functions.
And, add some simple unittests for BitVector and SmallBitVector.
llvm-svn: 92730
|