Primitive boolean array packing

Roman Kennke rkennke at
Sun Oct 7 11:51:38 UTC 2018

>>> I didn't search much if such experiments have already been
>>> accomplished, but I'd like to take the temperature of this feature as
>>> completing the implementation represents a significant amount of work.
>>> Is this something that is worth exploring?
>> The most problematic part, in my mind, is that JMM requires the absence of word tearing for array
>> element accesses. See here:
>> With densely packed boolean[], you'd need to convert plain stores to locked/CAS-loops to support
>> this, I think, which raises all sorts of performance questions. Choosing between boolean[] and
>> BitSet is basically choosing between stricter/relaxed concurrency guarantees vs dense/sparse footprint.
> But you get a lot of performance conflicts between cores having to share
> cache lines anyway. Maybe we should do some performance experiments: we
> wouldn't need to do all of the C2 work, just write a little C++ and asm
> code and measure what happens under some plausible conditions. We'd have
> to try both contended and uncontended situations.

Are boolean arrays even common enough to make a difference?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the compiler-dev mailing list