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