RFR (S): 8067014: LinearScan::is_sorted significantly slows down fastdebug builds' performance

Filipp Zhinkin filipp.zhinkin at gmail.com
Fri Feb 12 16:08:38 UTC 2016

Hi Aleksey,

On Fri, Feb 12, 2016 at 3:24 PM, Aleksey Shipilev
<aleksey.shipilev at oracle.com> wrote:
> Hi Filipp,
> On 02/12/2016 02:47 PM, Filipp Zhinkin wrote:
>> here is a new webrev: http://cr.openjdk.java.net/~fzhinkin/8067014/webrev.01/
> The webrev seems incomplete: it has only hotspot.patch in it, but no
> other views?

It seems like only wdiff's are empty for some reason.
What else is missed out there?

> I wonder how many intervals have the same "from", prompting you to
> wiggle around looking for the exact interval?

Well, there should be (relatively) many intervals with "from" == 0
created for physical registers.
For virtual registers there could be few intervals that share the same
"from" value:
it depends on amount of temporary registers required by an operation
and amount of outputs it produces.

So we may simply scan intervals from beginning if key's from value is 0.

> Can we define
> "interval_cmp" so that "(interval_cmp(i1, i2) == 0) iff (i1 == i2)",

No, unfortunately we can't, because intervals are ordered only by "from" value.

> or at least make the false positives less frequent with more extensive
> interval key (assuming collisions are indeed problematic)?

Not sure that I've got you.

Nevertheless, I'll run CTW and check how many false positives are
actually found.

>> I've hacked VM sources a bit to run CTW with product bits and C1
>> compilation time on my x86_64 linux laptop
>> slowed down by 0.4% (from 51029 ± 306 ms to 51230 ± 293 ms). Please
>> let me know if it too slow.
> I think this is within the error margin, and therefore statistically
> insignificant. Even if it was significant, 0.4% is okay for compilation
> time regression in C1.
>> With fastdebug bits provided patch allow to reduce C1 compilation time twice.
> This is a very good improvement, but we need to see if that's the end of
> it, or we can squeeze even more with a few changes. I would suggest
> running the CTW scenario under Solaris Studio Performance Analyzer (see
> e.g.
> http://shipilev.net/blog/2016/arrays-wisdom-ancients/#_meet_solaris_studio_performance_analyzer).

Thank you for the suggestion, I'll check it.


> Thanks,
> -Aleksey

More information about the hotspot-compiler-dev mailing list