RFR: 8217519: Improve RegMask population count calculation
Nils Eliasson
nils.eliasson at oracle.com
Wed Jan 23 09:23:54 UTC 2019
Excellent!
Thanks for fixing!
// Nils
On 2019-01-22 17:06, Claes Redestad wrote:
> Hi,
>
> this patch extract the population count used in RegMask::Size() to a
> utility method in share/utilities/population_count.hpp, as well as
> adds a test that verifies this produces the same results as the existing
> lookup table implementation.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8217519
> Webrev: http://cr.openjdk.java.net/~redestad/8217519/open.00/
>
> This reduces instructions retired in RegMask::Size() by 50-60% in some
> tests and profiles, which equates to a speedup of C2 by ~5% total. This
> improves startup marginally in my tests.
>
> Compiler intrinsics (such as gcc's __builtin_popcount()) would be
> appealing, but that actually gives worse performance than this patch (on
> current build configurations/setups available to me).
>
> Testing: tier1-3 (ongoing, previous increments of the patch without
> the gtest has been thoroughly tested)
>
> Thanks!
>
> /Claes
More information about the hotspot-compiler-dev
mailing list