RFR (S) 8184753: Assert against MinObjectAlignmentMask to avoid integer division

Aleksey Shipilev shade at redhat.com
Mon Jul 17 16:00:19 UTC 2017


fastdebug builds performance is important to minimize testing time. In GC tests,
we have a big hotspot at this line in oop::size_given_klass():
  assert(s % MinObjAlignment == 0, "Oop size is not properly aligned: %d", s);

The hotspot is because of the integer division. Alas, the divisor is not known
at compile time, because it can be set from the JVM command line, so compiler
cannot optimize it. There is an easy fix, use the MinObjectAlignmentMask to assert:

This also fixes all uses of MinObjAlignment in similar expressions.

Testing: hotspot_tier1 (Linux x86_64/fastdebug)


More information about the hotspot-dev mailing list