RFR: 8368465: [leyden] Improve precompiler method selection code [v3]
    Aleksey Shipilev 
    shade at openjdk.org
       
    Fri Oct 17 07:04:26 UTC 2025
    
    
  
> Forked from [JDK-8366681](https://bugs.openjdk.org/browse/JDK-8366681): there are still some cleanups/performance improvements possible. Current selection code is a bit hairy, and turns out the changes I made for previous patch improve performance.
> 
> Notable improvements:
>  1. Push the compilation level filters downwards. This allows compiling A2 from T2/T3 code more easily, and allows to implement policies for compiling on any A* level based on observing top-compiled T* levels.
>  2. Sort methods by hotness and code size. This avoids a fairly awkward path to get compile IDs, ditching which _I suspect_ is the cause for performance improvement. With new code, we compile a tad more A2 code. I have not digged through why current code accepts fewer methods for compilation. New code improves performance everywhere, so I suggest we just accept that and move on.
> 
> Additional testing:
>  - [x] Performance tests (see comments)
>  - [x] Linux x86_64 server fastdebug, `runtime/cds`
Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
 - Merge branch 'premain' into JDK-8368465-precompiler-method-select
 - Merge branch 'premain' into JDK-8368465-precompiler-method-select
 - Touchup
 - Touchups
 - Fix
-------------
Changes:
  - all: https://git.openjdk.org/leyden/pull/99/files
  - new: https://git.openjdk.org/leyden/pull/99/files/77b8b3ef..c1ceda27
Webrevs:
 - full: https://webrevs.openjdk.org/?repo=leyden&pr=99&range=02
 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=99&range=01-02
  Stats: 171272 lines in 2019 files changed: 136228 ins; 22676 del; 12368 mod
  Patch: https://git.openjdk.org/leyden/pull/99.diff
  Fetch: git fetch https://git.openjdk.org/leyden.git pull/99/head:pull/99
PR: https://git.openjdk.org/leyden/pull/99
    
    
More information about the leyden-dev
mailing list