RFR: JDK-8075816: AliasLevel is broken and should be deprecated [v2]

Tobias Hartmann thartmann at openjdk.java.net
Tue Apr 12 05:46:41 UTC 2022


On Mon, 11 Apr 2022 14:56:19 GMT, Tobias Holenstein <duke at openjdk.java.net> wrote:

>> Making the `AliasLevel` flag obsolete. And refactor code to always use default value 3. `AliasLevel` had the following values:
>> 
>> - "0 - for no aliasing, "
>> - "1 - for oop/field/static/array split, "
>> - "2 - for class split, "
>> - "3 - for unique instances"
>> 
>> The variable `_AliasLevel` is set by the value passed in `Compile::Init(int aliaslevel)` with `aliaslevel`  being `3` except when call by `Compile::Compile(...)` for a runtime stub where `aliaslevel` is `0`. Therefor `_AliasLevel` can be turned into on boolean `do_aliasing` that indicated whether aliasing is turned off for runtime stubs or on otherwise. Code for level 1 and 2 can be removed completely.
>
> Tobias Holenstein has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Obsolete AliasLevel flag

>From looking at the code and history, it seems that `AliasLevel` values `0` and `1` are currently disabled due to issues. The VM will print:

AliasLevel (1) is not compatible with -Xcomp or -Xmixed
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.


But `2` seems to work fine. `3` is the default. @tobiasholenstein did you find any issues with `AliasLevel=2`?

-------------

PR: https://git.openjdk.java.net/jdk/pull/8140


More information about the hotspot-dev mailing list