[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-hotspot-dev
Subject: Re: RFR: JDK-8239794 Move -Os from JVM feature 'minimal' to new feature 'opt-size'
From: David Holmes <david.holmes () oracle ! com>
Date: 2020-02-24 4:37:39
Message-ID: 8474f0d9-9658-9ce5-4922-74f92ef1d22e () oracle ! com
[Download RAW message or body]
Hi Magnus,
This seems reasonable to me.
The definition of OPT_SPEED_SRC is likely out of date, but we have no
data for modifying that list. People who try opt-size will likely try to
refine it.
Thanks,
David
-----
On 22/02/2020 2:13 am, Magnus Ihse Bursie wrote:
> Prior to JDK-8239450, it was possible to explicitly set the JVM feature
> 'minimal', even when building variant server. The reason for doing this
> was to get the code in JvmFeatures.gmk that sets JVM_OPTIMIZATION :=
> SIZE (except for a handful of files).
>
> Since this functionality is important in itself (and it has been
> requested by users in the community), it should be controlled by a
> separate feature, instead of just as a part of the 'minimal' feature,
> which signals that the minimal JVM variant is being built.
>
> However, when looking into it, I noticed several aspects of the old code
> that I wanted to address.
>
> First of all, the old code had the size optimization silently ignored,
> if also 'link-time-opt' was enabled. This does not make any sense, since
> it is completely possible to do both. This code was written in the new
> Hotspot build system as a way to mimick the old Hotspot build system.
> I'm guessing that this was initially introduced as a way to enable the
> size optimization when building minimal, except for arm-32 systems,
> which were the only system to have link-time-opt enabled.
>
> After some head scratching, I implemented the logic in the following way:
> * If opt-size is enabled, the JVM_OPTIMIZATION := SIZE is always
> performed, regardless of any other features.
> * And contrary, link-time-opt can be enabled/disabled independent on
> opt-size
> * When building minimal on arm-32, opt-size is not enabled by default,
> but link-time-opt is (as it was before)
> * When building minimal on any other platform, opt-size is enabled by
> default, but link-time-opt is not (as it was before)
> * When building any other variant, opt-size is disabled by default
>
> This makes standard builds of minimal with no extra features
> enabled/disabled behave the same as before, while giving the maximum of
> flexibility to change this. But I'd like to get input from someone in
> the Hotspot team that this is a sound approach.
>
> Also, this has apparently never been tested by any other compiler than
> gcc and/or clang, since we explicitly add the compiler flag
> -fno-optimize-sibling-calls. I wrapped this in a compiler check.
>
> Note that this patch is based on JDK-8239789 (Follow-up on JVM feature
> rewrite).
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8239794
> WebRev:
> http://cr.openjdk.java.net/~ihse/JDK-8239794-create-opt-size-jvm-feature/webrev.01
>
>
> /Magnus
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic