On Tue, 17 Dec 2024 14:54:03 GMT, Julian Waters <jwat...@openjdk.org> wrote:
>> This is a general cleanup and improvement of LTO, as well as a quick fix to >> remove a workaround in the Makefiles that disabled LTO for >> g1ParScanThreadState.cpp due to the old poisoning mechanism causing trouble. >> The -Wno-attribute-warning change here can be removed once Kim's new >> poisoning solution is integrated. >> >> - -fno-omit-frame-pointer is added to gcc to stop the linker from emitting >> code without the frame pointer >> - -flto is set to $(JOBS) instead of auto to better match what the user >> requested >> - -Gy is passed to the Microsoft compiler. This does not fully fix LTO under >> Microsoft, but prevents warnings about -LTCG:INCREMENTAL at least > > Julian Waters has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains 12 additional > commits since the last revision: > > - Merge branch 'openjdk:master' into patch-16 > - -fno-omit-frame-pointer in JvmFeatures.gmk > - Revert compilerWarnings_gcc.hpp > - General LTO fixes JvmFeatures.gmk > - Revert DISABLE_POISONING_STOPGAP compilerWarnings_gcc.hpp > - Merge branch 'openjdk:master' into patch-16 > - Revert os.cpp > - Fix memory leak in jvmciEnv.cpp > - Stopgap fix in os.cpp > - Declaration fix in compilerWarnings_gcc.hpp > - ... and 2 more: https://git.openjdk.org/jdk/compare/06ed9958...9d05cb8e I did some builds today with gcc14.2.0 on Linux x86_64 . They looked good with and without LTO . Without lto / normal opt build du -sh images/jdk/lib/server/libjvm.so 27M images/jdk/lib/server/libjvm.so WITH lto du -sh images/jdk/lib/server/libjvm.so 24M images/jdk/lib/server/libjvm.so So even the code size reduction is visible. So gcc14 seems to work for me (but so far I only used it on Linux x86_64, can't tell about aarch64/ppc64le). ------------- PR Comment: https://git.openjdk.org/jdk/pull/22464#issuecomment-2757921798