Integrated: 8257223: C2: Optimize RegMask::is_bound

Claes Redestad redestad at openjdk.java.net
Tue Dec 1 13:21:55 UTC 2020


On Mon, 30 Nov 2020 13:00:15 GMT, Claes Redestad <redestad at openjdk.org> wrote:

> - Avoid Size() for is_bound1 (does relatively expensive computations)
> - Refactor loops to more efficiently check that the remainder of the mask is empty after a match. (Using the same structure helped gcc merge the control flows in `is_bound` for an additional benefit)
> 
> This removes ~80k (~1%) of the C2 bootstrap overhead, and reduces time spent doing Register_Allocate in SimpleRepeatCompilation.largeMethod by about 0.4%. There's a small but statistically insignificant effect (~0.2%) on the score, too:
> 
> Benchmark                                      Mode  Cnt     Score    Error  Units
> SimpleRepeatCompilation.largeMethod_repeat_c2    ss   20  8119.278 ± 37.803  ms/op
> SimpleRepeatCompilation.largeMethod_repeat_c2    ss   20  8099.331 ± 33.159  ms/op

This pull request has now been integrated.

Changeset: 2966d0d3
Author:    Claes Redestad <redestad at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/2966d0d3
Stats:     67 lines in 1 file changed: 45 ins; 3 del; 19 mod

8257223: C2: Optimize RegMask::is_bound

Reviewed-by: kvn, neliasso

-------------

PR: https://git.openjdk.java.net/jdk/pull/1515


More information about the hotspot-compiler-dev mailing list