HomePhabricator

Simplify BitVector code

Authored by serge-sans-paille on Apr 13 2021, 7:14 AM.

Description

Simplify BitVector code

Instead of managing memory by hand, delegate it to std::vector. This makes the
code much simpler, and also avoids repeatedly computing the storage size.

According to valgrind --tool=callgrind, this also slightly decreases the
instruction count, but by a small margin.

This is a recommit of 82f0e3d3ea6bf927e3397b2fb423abbc5821a30f with one usage
fixed in llvm/lib/CodeGen/RegisterScavenging.cpp.

Not the slight API change: BitVector::clear() now has the same behavior as any
other container: it does not free memory, but indeed sets the size of the
BitVector to 0. It is thus incorrect to access its content right afterwards, a
scenario which wasn't enforced in previous implementation.

Differential Revision: https://reviews.llvm.org/D100387

Details

Committed
serge-sans-pailleFri, Apr 16, 1:48 PM
Differential Revision
D100387: Simplify BitVector code
Parents
rGca6751043d88: [lld-macho] Initial groundwork for -bitcode_bundle
Branches
Unknown
Tags
Unknown