On Wed, 26 Feb 2025 13:24:57 GMT, Matthias Baesken <mbaes...@openjdk.org> wrote:

>> I think it might be worth trying to take a more structured approach to the 
>> optimizations used. Maybe setup a wiki page with all native libraries, what 
>> current optimization levels they use, and what the difference in size would 
>> be for e.g. SIZE and HIGH instead. Ideally, we would also have some kind of 
>> microbenchmark associated with each library that could say anything about 
>> the performance of the library, but that is probably not realistic in most 
>> cases. But I guess that people familiar with the library can make some 
>> educated guess about the performance sensitivity of the libraries, and what 
>> would stress them.
>> 
>> Furthermore, I think we can definitely consider changes in the build system 
>> to support some of the requests that have arisen here, like allowing JDK 
>> libraries (apart from Hotspot) to allow LTO, or to have a way to override 
>> optimization levels for JDK libraries from the configure command line, 
>> similar to the JVM feature `opt-size`.
>> 
>> I am also open to reconsidering the entire idea of "optimization levels" the 
>> way it is currently implemented. Developers tend to think in terms of `-O2`, 
>> and our named optimization levels just inserts an extra layer of uncertainty 
>> ("what does `HIGHEST` really mean?). A problem is of course that different 
>> compilers have different ways of expressing optimization (most clearly how 
>> the Microsoft VS compiler differs from gcc/clang), but then again, maybe 
>> that just means that we should express this as:
>> 
>> 
>>    OPT_gcc_clang := -O1, \
>>    OPT_microsoft := -O2. \
>> 
>> 
>> since it is not obvious that there really is a good way to package different 
>> optimization flags for different compilers that make sense for all 
>> libraries. Our current code assumes this is the case, but this does not 
>> necessarily have to be true.
>
>>  Maybe setup a wiki page with all native libraries, what current 
>> optimization levels they use, and what the difference in size would be for 
>> e.g. SIZE and HIGH instead.
> 
> Hi @magicus  I can collect some info from our builds (gcc13, xlc17, Xcode15, 
> VS2022).
> Should we place the wiki here ?  https://wiki.openjdk.org/display/Build  
> Seems I can edit the pages there but not create a new one , can you !?

> @MBaesken I don't know why you could not add new pages (everyone in the Build 
> Group should be able to do that). The UI is a bit strange, I usually create a 
> new page by creating a tentative link from an existing one.
> 
> Anyway, I created 
> https://wiki.openjdk.org/display/Build/Native+library+optimization+level+research.
>  It's all yours!

Thanks ! I'll most likely have some time next week to collect and add some info 
from our build envs we use at SAP.

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

PR Comment: https://git.openjdk.org/jdk/pull/23563#issuecomment-2690369940

Reply via email to