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.
------------------------------------------------------------------------------
src/share/vm/utilities/bitMap.cpp
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