RFR (S): 8067014: LinearScan::is_sorted significantly slows down fastdebug builds' performance
filipp.zhinkin at gmail.com
Fri Feb 12 16:08:38 UTC 2016
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
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
>> 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
Thank you for the suggestion, I'll check it.
More information about the hotspot-compiler-dev