RFR: 8257146: C2: extend the scope of StressGCM
Aleksey Shipilev
shade at openjdk.java.net
Fri Nov 27 13:20:58 UTC 2020
On Thu, 26 Nov 2020 20:37:21 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:
>> Extend the scope of StressGCM by allowing it to move instructions into basic blocks with worse frequency. This should improve StressGCM's ability to expose bugs where C2 relies on GCM heuristics for correctness.
>>
>> Tested with StressGCM enabled on `hs-tier1-3` and a single repetition, the following test cases fail on `linux-aarch64-debug` and require further investigation:
>> - `serviceability/sa/ClhsdbJstackXcompStress.java`
>> - `compiler/c2/cr6663848/Tester.java`
>>
>> Also tested with StressGCM disabled (default) on `hs-tier1-3`, all tests pass.
>
> Extend the scope of StressGCM by allowing it to move instructions into basic
> blocks with worse frequency.
>From the archives, the original discussion about StressGCM:
https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2013-February/009777.html
It was explicitly putting the loads in lower frequency block only, because as Vladimir says:
> There is an other old bug which you may hit if you randomize placement
> in gcm: 6831314. I still did not find a solution which does not
> introduce performance regression. What saves us is placing loads into
> "cheaper" low frequency block (which is most nested block where load's
> result is used).
Is that not a problem anymore?
-------------
PR: https://git.openjdk.java.net/jdk/pull/1469
More information about the hotspot-compiler-dev
mailing list