Hi Igor,
On 8/01/2021 6:36 am, Igor Veresov wrote:
This change removes the legacy compilation policy and an emulation mode to the
tiered policy to simulate the old behavior with ```-XX:-TieredCompilation```.
The change removed a bunch of interpreter code, devirtualizes the compilation
policy API, adds a consistent way to query compiler configuration with the new
```CompilerConfig``` API.
Can you clarify, for non-compiler folk, what all the alternative configs
actually mean now. I'm a bit confused by this definition:
define_pd_global(bool, TieredCompilation,
COMPILER1_PRESENT(true) NOT_COMPILER1(false));
as I expected tiered compilation to require COMPILER1 and COMPILER2.
Also I see interpreter code that used to be guarded by TieredCompilation
now being executed unconditionally, which seems to assume C1 or C2 must
be present?
Overall it is a big change to digest, but after skimming it looks like a
few of the refactorings could have been applied in a layered fashion
using multiple commits to make it easier to review.
Thanks,
David
-----
I've tested this with hs-tier{1,2,3,4,5}. And also made sure it builds and
works with C1/C2-Graal/AOT being enabled/disabled.
Since there are platform-specific changes I would greatly appreciate some help
from the maintainers of the specific ports to verify the build and run basic
smoke tests. I've already tested x64 and aarch64. Thanks!
-------------
Commit messages:
- Fix copyright years
- Remove legacy compilation policy.
Changes: https://git.openjdk.java.net/jdk/pull/1985/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1985&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8251462
Stats: 5285 lines in 95 files changed: 1481 ins; 2979 del; 825 mod
Patch: https://git.openjdk.java.net/jdk/pull/1985.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1985/head:pull/1985
PR: https://git.openjdk.java.net/jdk/pull/1985