On Thu, 13 Feb 2025 01:52:05 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> 
> So it's about a 5% footprint increase to go from LOW to HIGH, and about a 10% 
> footprint savings to go from LOW to SIZE. What specific gcc -O flag do each 
> of these map to? I figure SIZE == -Os, HIGH == -O3. Not sure about LOW, but 
> if it is -O1, then -Os will probably give a performance increase since it is 
> -O2 minus some code bloat optimizations and plus some code size optimizations.


Please see 
https://github.com/openjdk/jdk/blob/master/make/autoconf/flags-cflags.m4#L310

On gcc/clang , SIZE is indeed -OS ;  HIGH is -O3;  LOW (=NORM) is -O2 .
'minus some code bloat optimizations'  yes  some alignment (-falign*) options 
are omitted with -Os (see 
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html 

Btw what is also interesting is LTO optimization ;  with gcc this has high 
optimization and for some libs quite large size reduction because at link time 
it can remove/rearrange quite a lot of code leading to smaller libs .
But currently we have LTO support only for hotspot.

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

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

Reply via email to