RFR: 8151439: Inline the BitMap constructor

Kim Barrett kim.barrett at oracle.com
Tue Mar 8 19:39:02 UTC 2016

> On Mar 8, 2016, at 5:52 AM, Stefan Karlsson <stefan.karlsson at oracle.com> wrote:
> Hi all,
> Please review this patch to inline the BitMap constructor. This will allow us to efficiently use temporary, stack-allocated BitMaps.
> http://cr.openjdk.java.net/~stefank/8151439/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8151439
> A code example of why we want to inline the BitMap constructor:
> void MyClass::set_bit(idx_t x) {
>    BitMap(&_bits, BitsPerWord).par_set_bit(x).
> }
> We could have used an instance of a BitMap in MyClass, but that would store both a bm_word_t* and the size of the bitmap storage in MyClass. Since the size is a compile-time constant, we can use the above construct to only store a bm_word_t field in MyClass, and thereby reduce the size of MyClass. By inlining the constructor, we get rid of the extra overhead of creating a BitMap.
> Thanks,
> StefanK

Looks good.

  37   assert(sizeof(bm_word_t) == BytesPerWord, "Implementation assumption.");

This assert can be removed too, due to the new STATIC_ASSERT.


More information about the hotspot-dev mailing list